diff --git a/pyproject.toml b/pyproject.toml index 19fcfed..66f011d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,4 +6,8 @@ readme = "README.md" requires-python = ">=3.14" dependencies = [ "dotenv>=0.9.9", + "jupyter>=1.1.1", + "matplotlib>=3.10.9", + "numpy>=2.4.6", + "seaborn>=0.13.2", ] diff --git a/study/introduction-to-probability-statistics-and-random-processes/.ipynb_checkpoints/notes-checkpoint.md b/study/introduction-to-probability-statistics-and-random-processes/.ipynb_checkpoints/notes-checkpoint.md deleted file mode 100644 index bae2d32..0000000 --- a/study/introduction-to-probability-statistics-and-random-processes/.ipynb_checkpoints/notes-checkpoint.md +++ /dev/null @@ -1,3 +0,0 @@ -# Notes for Introduction to Probability, Statistics, and Random Processes - -## Ch.1 diff --git a/study/introduction-to-probability-statistics-and-random-processes/README.md b/study/introduction-to-probability-statistics-and-random-processes/README.md new file mode 100644 index 0000000..2e6aca5 --- /dev/null +++ b/study/introduction-to-probability-statistics-and-random-processes/README.md @@ -0,0 +1,5 @@ +# Introduction to Probability, Statistics, and Random Processes - Hossein Pishro-Nik + +total pages=1007 + +**Currently reading:** chapter 1, page 56 diff --git a/study/introduction-to-probability-statistics-and-random-processes/notebooks/ch1.ipynb b/study/introduction-to-probability-statistics-and-random-processes/notebooks/ch1.ipynb index dbc4954..098518e 100644 --- a/study/introduction-to-probability-statistics-and-random-processes/notebooks/ch1.ipynb +++ b/study/introduction-to-probability-statistics-and-random-processes/notebooks/ch1.ipynb @@ -1,5 +1,23 @@ { "cells": [ + { + "cell_type": "code", + "execution_count": 9, + "id": "c58309b2", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import sys\n", + "\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import pandas as pd\n", + "import seaborn as sns\n", + "\n", + "sns.set_theme(style=\"whitegrid\", context=\"notebook\")" + ] + }, { "cell_type": "markdown", "id": "a6732353-51d5-4478-9cf8-5834e57e5a4e", @@ -162,18 +180,241 @@ "\\end{align*}" ] }, + { + "cell_type": "markdown", + "id": "4bc9a64b", + "metadata": {}, + "source": [ + "# 1.3.6 Problems. \n", + "\n", + "## Problem 1 - skipping\n", + "\n", + "## Problem 2 \n", + "\n", + "a. \n", + "\n", + "\\begin{align*}\n", + "S = \\{ x \\mid x >= 2, x \\in \\mathbb{N} \\}\n", + "\\end{align*}\n", + "\n", + "b.\n", + "1 red, 1 blue, 1 white and 1 green\n", + "\n", + "\\begin{align*}\n", + "S = \\{ (R, B), (B, R), (R, W), (W, R), (R, G), (G, R), (B, W), (W, B), (B, G), (G, B), (W, G), (G, W) \\}\n", + "\\end{align*}\n", + "\n", + "c.\n", + "\n", + "$S = [0, \\frac{1}{3})$\n", + "\n", + "## Problem 3\n", + "\n", + "- $A \\cup B \\cup C = S$\n", + "- $P(A) = \\frac{3}{6}$\n", + "- $P(B) = \\frac{4}{6}$\n", + "- $P(A \\cup B) = \\frac{5}{6}$\n", + "\n", + "### a. Find $P(A \\cap B)$\n", + "\n", + "$P(A \\cap B) = P(A) + P(B) - P(A \\cup B) = \\frac{3}{6} + \\frac{4}{6} - \\frac{5}{6} = \\frac{2}{6}$\n", + "\n", + "### b. Do $A$, $B$ and $C$ form a partition of $S$?\n", + "\n", + "No. Proof by contridiction:\n", + "\n", + "Assume $A$, $B$ and $C$ form a partition of $S$. That would imply $P(S) = P(A) + P(B) + P(C) = 1$.\n", + "\n", + "$P(A) = \\frac{3}{6}$ and $P(B) = \\frac{4}{6}$, so $P(A) + P(B) = \\frac{7}{6}$\n", + "\n", + "$P(A) + P(B) > P(S)$ therefore contirdiction.\n", + "\n", + "$A$, $B$ and $C$ do not form a partition of $S$. $\\blacksquare$\n", + "\n", + "### c. Find $P(C \\setminus (A \\cup B))$\n", + "\n", + "\\begin{align*}\n", + "A \\cup B \\cup C = S \\\\\n", + "A \\cup B \\cup C \\setminus (A \\cup B) = S \\setminus (A \\cup B) \\\\\n", + "C \\setminus (A \\cup B) = S \\setminus (A \\cup B)\n", + "\\end{align*}\n", + "\n", + "Therefore $P(C \\setminus (A \\cup B)) = P(S \\setminus (A \\cup B))$.\n", + "\n", + "Notice $P(S \\setminus (A \\cup B)) = P((A \\cup B)^c)$, so $P(C \\setminus (A \\cup B)) = P((A \\cup B)^c)$\n", + "\n", + "So\n", + "\n", + "\\begin{align*}\n", + "P(C - (A \\cup B)) &= P((A \\cup B)^c) \\\\\n", + "&= P(S) - P(A \\cup B) \\\\\n", + "&= 1 - \\frac{5}{6} \\\\\n", + "&= \\frac{1}{6}\n", + "\\end{align*}\n", + "\n", + "### d. If $P(C \\cap (A \\cup B)) = \\frac{5}{12}, P(C) =$ ?\n", + "\n", + "$C = (C \\cap (A \\cup B)) \\cup C \\setminus (A \\cup B)$\n", + "\n", + "Therefore\n", + "\n", + "\\begin{align*}\n", + "P(C) &= P((C \\cap (A \\cup B)) \\cup C \\setminus (A \\cup B)) \\\\\n", + "&= P(C \\cap (A \\cup B)) + P(C \\setminus (A \\cup B)) \\\\\n", + "&= \\frac{5}{12} + \\frac{1}{6} \\\\\n", + "&= \\frac{7}{12}\n", + "\\end{align*}\n", + "\n", + "## Problem 4.\n", + "\n", + "### a. \n", + "Let $X$ be our sample space for the first row, and $Y$ the second roll. ($X \\cup Y = S$)\n", + "\n", + "$X = \\{ 1, 2, 3, 4, 5, 6 \\}$\n", + "\n", + "Let $x$ be the first dice row and $y$ the second dice roll. ($x \\in X$ and $y \\in Y$)\n", + "\n", + "The probability $x < y$ is $|X| - x$ or $6 - x$.\n", + "\n", + "So \n", + "\n", + "\\begin{align*}\n", + "\\sum_{x \\in X} (6 - x) &= \\sum_{x \\in X} 6 - \\sum_{x \\in X} x \\\\\n", + "&= 36 - (1 + 2 + 3 + 4 + 5 + 6) \\\\\n", + "&= 15\n", + "\\end{align*}\n", + "\n", + "Therefore $P(A) = \\frac{15}{36}$\n", + "\n", + "### b.\n", + "\n", + "Number of outcomes where 6 is only first: 1 * 5\n", + "Number of outcomes where 6 is only second: 1 * 5 \n", + "Number of outcomes where 6 is both: 1\n", + "\n", + "Therefore $P(B) = \\frac{11}{36}$\n", + "\n", + "## Problem 5." + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "e589ecc1", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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mHjIufbLy8ur9tr+zhVof3+JWXx8vBwOR0CuVX58SxVO/bjKmXvGF3Jc2i8g1wUCxWq1yu12y2q1BuzfGwChjfsAAO4DACTuBQAO9ve+LRSYtp2C1+vVo48+qhkzZkiSGjdurKlTp+roo4+uk/O3bNnSd7xjx45q1x+45rjjjjtoduDnwz3XgTnCTcLFZxvOylasljun+sIbAAAAAAAAwOExpcTdX+BOnz5d0r63u02dOlXHHHNMnV3jhBNO8B2vXbvW79qcnBxlZWVJktLS0tSgQYNan+vva44//vga5a2P4rp1kLVhStVDj0fFC5abmgcAAAAAAACIBAEvcf9e4Kanp2vq1Kk69thj6/Q6PXr08B0vX+6/TPzqq698xz179jxk3rp1azVr1kyStHnzZr9P45aUlGjVqlWSpLi4OHXu3PmwctcnFrtdjgsO/d/XfiXzlpiYBgAAAAAAAIgMAS9xH3vssUMK3EBsOdC5c2elp6dLkn744QetX7++ynVut1vTpk3zfe7fv3+V68477zzf8dtvv2143VmzZqm0tFSSdM455yguLu5wo9crjovPMZyVffOzKvfkmpgGAAAAAAAACH8BLXEff/xxvf/++5L+V+D+ff/Zmpg9e7YyMjKUkZGhIUOGVLnGZrPptttu830ePXq09u7de8i68ePH65dffpEkderU6aAneA80dOhQ38vR3nvvPS1evPiQNWvWrNGLL74oSbLb7br99tsP7werh2K7tpctPbXqocejkgVfVT0DAAAAAAAAUCv2QJ14woQJevfddyVJFotF11xzjbZs2aItW7b4/V6bNm18Wxkcrssuu0yLFi3SN998o99//10XX3yxBg8erNatWys/P18LFizwbX2QlJSkxx57zPBcaWlpeuihhzRmzBh5PB4NHz5c/fv3V/fu3WW1WrV69WrNnTtXTqdTkjRixAi1atWqVrnrE4vNpoQLeqnwrTlVzovnLFby9QNNTgUAAAAAAACEr4CVuKtXr/Yde71ePf/88zX63tNPP61BgwbV6pp2u10vvfSSRo0apaVLlyo7O1uTJ08+ZF2TJk00YcKEal9CNnDgQJWVlWncuHFyOp2aP3++5s+ff9Aam82mYcOGadiwYbXKXB85Lj7bsMQt/y5TlVnZsjdNNzkVAAAAAAAAEJ4CVuIGi8Ph0JQpU7Ro0SLNmzdP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t8hSxZ/eAAAAAAAAwL/x48frtdeq7l2qs379etntVVeDp59+us4++2wtXbpUixYtUsuWLfXqq68qISGhyvUFBQVauXKlmjVrpjZt2tQ4w/nnn6+3335bmZmZ+uKLL9SxY8da/SyRgBIXAeXwU+JW7tyj8u8yFdetg7mhAAAAAAAAwkBcXJxSUlJq9V2LxWI483q9Bz1xO2bMGDVo0MBw/bJly1RZWVnlC82q06lTJ2VmZmrbtm2H/d1IQomLgIo6ppliTz9Z5T9W/bbB4tmLKHEBAAAAAIggkyZN0sSJEyVJffv21aRJk2r0vcWLF+u2226TJJ1wwgmaO3eubDZbwHIGmtfr1VdffaUlS5Zo1apVys7OVmlpqVJSUnTKKafooosuUr9+/fyWrbfffrtuv/32Os/25JNP6osvvpDdbldlZaWmTp2qXr16Ga432g+3JqKioiRJlZWVtcoaKfh77Ag4xyXGLzgr/nipvBUuE9MAAAAAAIBg6tChg+84MzOzRt+pqKjQM8884/v8wAMP1OsC9/vvv9eFF16oW265RTNnztSmTZtUUFAgl8ul7OxsLVmyRCNHjtS1116r/Px8U7NNmjRJ06ZNU+PGjTV9+nTFxcXpm2++0bffflvl+oqKCq1YsULJyck6/fTTD/t6v/32mySpadOmR5Q73FHiIuASLjpbMrixevIKVbrke5MTAQAAAACAYGnfvr3v6dK//vpLe/bsqfY7b7/9trZv3y5J6tOnj7p27RrQjIH07rvv6vrrr9fvv/8uSUpISFCPHj102WWXacCAATr++ON9a7///nuNGDFCbrfblGzTp0/XxIkTlZycrNdff13t2rXTkCFDJEnPPfecvF7vId/573//q9LSUp111lmGe+wa+eWXX/T1119Lks4888wj/wHCGNspIODs6amK73W6Shd/V+W8aNYXSujHv6gAAAAAAESCxMREtW7d2ldiZmZmqk+fPobrs7OzNWXKFElSdHS0xowZc1jX++qrr/TVV1/VPnAVLr74YrVv3/6wv/f555/riSeekNfrVVxcnEaMGKErr7xS8fHxB61btmyZ7rnnHhUXF+uHH37QJ598ogEDBtRReuNsjz32mGJjYzV58mSdcMIJkqQbb7xR06dP1/r16/XZZ5+pf//+B31v/1YKVf3f8Pfff9fUqVN15ZVXHvLCs2XLlunB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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 438, + "width": 696 + } + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2.25091334378745\n" + ] + } + ], + "source": [ + "xmin = -4\n", + "xmax = 20\n", + "\n", + "x = np.linspace(xmin, xmax, 200)\n", + "y = np.exp(-1 * (x / 5))\n", + "\n", + "# ----------------------------------------------------\n", + "\n", + "plt.figure(figsize=(8, 5))\n", + "\n", + "# 1. Updated the LaTeX label to match your new math\n", + "plt.plot(x, y, color=\"crimson\", linewidth=2.5, label=r\"$y = e^{-x/5}$\")\n", + "\n", + "plt.xlim(xmin, xmax)\n", + "\n", + "# 2. Tightened the Y-limits so you can actually see the decay curve\n", + "plt.ylim(0, 2)\n", + "\n", + "plt.legend(fontsize=12, loc=\"upper right\") # Moved to upper right since curve decays downward\n", + "plt.show()\n", + "\n", + "print((1 - 2.71 ** (-3/5)) * 5)" + ] + }, + { + "cell_type": "markdown", + "id": "00afcbd1", + "metadata": {}, + "source": [ + "### a.\n", + "\n", + "Our sample space $S$ is the time at which the product breaks. The product could break immediatly ($T = 0$) or never break ($T \\to \\infty$)\n", + "\n", + "Therefore $S = [0, \\infty)$\n", + "\n", + "### b.\n", + "\n", + "$P(T \\geq 0) = e^{-\\frac{t}{5}} = 1$\n", + "\n", + "This makes sense, as this states that the probability the product doesnt break immediatly is 1. This would have to be the case, otherwise the product was broken to begin with, which is an impossible senario.\n", + "\n", + "$\\lim_{t \\to \\infty} P(T \\geq t) = \\lim_{t \\to \\infty} e^{-\\frac{t}{5}} = 0$ (skiping proof, can be easily seen in graph above)\n", + "\n", + "This means the as time goes on, the probability the product doesnt break approachs 0. This would imply the product will eventually break given infinite time.\n", + "\n", + "### c.\n", + "\n", + "$t_1 \\lt t_2 \\implies P(T \\geq t_1) \\geq P(T \\geq t_2)$.\n", + "\n", + "Proof\n", + "\n", + "\\begin{align*}\n", + "t_1 \\leq t_2 \\\\\n", + "-\\frac{t_1}{5} \\cdot -5 \\geq -\\frac{t_2}{5} \\cdot -5 \\\\\n", + "-\\frac{t_1}{5} \\geq -\\frac{t_2}{5} \\\\\n", + "e^{-\\frac{t_1}{5}} \\geq e^{-\\frac{t_2}{5}} \\\\\n", + "P(T \\geq t_1) \\geq P(T \\geq t_2) \n", + "\\end{align*}\n", + "\n", + "$\\blacksquare$\n", + "\n", + "This implies a more time means more probability the product may breakdown which makes intuitive sense.\n", + "\n", + "### d. Find the probability that the product breaks down within three years of the purchase time.\n", + "\n", + "\\begin{align*}\n", + "\\int_{0}^{3} e^{-\\frac{t}{5}} dt\\\\\n", + "[-5e^{-\\frac{t}{5}} + C]_0^3 \\\\\n", + "(-5e^{-\\frac{3}{5}} + C) - (-5e^{-\\frac{0}{5}} + C) \\\\\n", + "-5e^{-\\frac{3}{5}} + C + 5e^{-\\frac{0}{5}} - C \\\\\n", + "-5e^{-\\frac{3}{5}} + 5 \\\\\n", + "\\approx 2.251\n", + "\\end{align*}" + ] + }, { "cell_type": "markdown", "id": "4609aba5-dfdc-4500-bec2-cfa2e544cca7", "metadata": {}, "source": [ - "Example 1.17 - soln\n", + "### Example 1.17 - soln\n", "\n", "I roll a fair die twice and obtain two numbers X1 = result of the first roll and X2 = result\n", "of the second roll. Given that I know X1 + X2 = 7, what is the probability that X1 = 4 or\n", "X2 = 4?\n", "\n", "What is our sample space?\n", + "\n", "\\begin{align*} \n", "D = \\{1,2,3,4,5,6\\} \\\\\n", "S = D \\times D\n", @@ -190,6 +431,8 @@ "= \\frac{12}{36} = \\frac{1}{3}\n", "\\end{align*}\n", "\n", + "> NOTE my event set A may be overcounting \n", + "\n", "\\begin{align*} \n", "B = \\{(x,y) \\mid x+y = 7 , x,y \\in \\mathbb{N}\\} \\\\\n", "|B| = 6 \\\\\n", @@ -205,8 +448,7 @@ "B = \\{(x,y) \\mid x+y = 7 , x,y \\in \\mathbb{N}\\} \\\\\n", "A = \\{(x,y) \\mid x=4 \\lor y = 4 \\} \\\\\n", "P(A|B) = \\frac{P(A \\cap B)}{P(B)} \\\\\n", - "= \\frac{P(A \\cap B)}{P(B)} \\\\\n", - "= \\frac{\\frac{1}{18}}{\\frac{1}{6}}\n", + "= \\frac{\\frac{1}{18} }{ \\frac{1}{6} } \\\\\n", "= \\frac{6}{18} = \\frac{1}{3}\n", "\\end{align*}\n" ] @@ -217,12 +459,14 @@ "id": "11163495-a6cc-43b9-bf41-02748b13d210", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "\n" + ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "roadmap (3.14.5)", "language": "python", "name": "python3" }, diff --git a/uv.lock b/uv.lock index c2e2c5d..5b4f174 100644 --- a/uv.lock +++ b/uv.lock @@ -1,6 +1,328 @@ version = 1 revision = 3 requires-python = ">=3.14" +resolution-markers = [ + "sys_platform == 'win32'", + "sys_platform == 'emscripten'", + "sys_platform != 'emscripten' and sys_platform != 'win32'", +] + +[[package]] +name = "anyio" +version = "4.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/14/2c5dd9f512b66549ae92767a9c7b330ae88e1932ca57876909410251fe13/anyio-4.13.0.tar.gz", hash = "sha256:334b70e641fd2221c1505b3890c69882fe4a2df910cba14d97019b90b24439dc", size = 231622, upload-time = "2026-03-24T12:59:09.671Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl", hash = "sha256:08b310f9e24a9594186fd75b4f73f4a4152069e3853f1ed8bfbf58369f4ad708", size = 114353, upload-time = "2026-03-24T12:59:08.246Z" }, +] + +[[package]] +name = "appnope" +version = "0.1.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/35/5d/752690df9ef5b76e169e68d6a129fa6d08a7100ca7f754c89495db3c6019/appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee", size = 4170, upload-time = "2024-02-06T09:43:11.258Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/29/5ecc3a15d5a33e31b26c11426c45c501e439cb865d0bff96315d86443b78/appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c", size = 4321, upload-time = "2024-02-06T09:43:09.663Z" }, +] + +[[package]] +name = "argon2-cffi" +version = "25.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "argon2-cffi-bindings" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0e/89/ce5af8a7d472a67cc819d5d998aa8c82c5d860608c4db9f46f1162d7dab9/argon2_cffi-25.1.0.tar.gz", hash = "sha256:694ae5cc8a42f4c4e2bf2ca0e64e51e23a040c6a517a85074683d3959e1346c1", size = 45706, upload-time = "2025-06-03T06:55:32.073Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4f/d3/a8b22fa575b297cd6e3e3b0155c7e25db170edf1c74783d6a31a2490b8d9/argon2_cffi-25.1.0-py3-none-any.whl", hash = "sha256:fdc8b074db390fccb6eb4a3604ae7231f219aa669a2652e0f20e16ba513d5741", size = 14657, upload-time = "2025-06-03T06:55:30.804Z" }, +] + +[[package]] +name = "argon2-cffi-bindings" +version = "25.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5c/2d/db8af0df73c1cf454f71b2bbe5e356b8c1f8041c979f505b3d3186e520a9/argon2_cffi_bindings-25.1.0.tar.gz", hash = "sha256:b957f3e6ea4d55d820e40ff76f450952807013d361a65d7f28acc0acbf29229d", size = 1783441, upload-time = "2025-07-30T10:02:05.147Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/60/97/3c0a35f46e52108d4707c44b95cfe2afcafc50800b5450c197454569b776/argon2_cffi_bindings-25.1.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:3d3f05610594151994ca9ccb3c771115bdb4daef161976a266f0dd8aa9996b8f", size = 54393, upload-time = "2025-07-30T10:01:40.97Z" }, + { url = "https://files.pythonhosted.org/packages/9d/f4/98bbd6ee89febd4f212696f13c03ca302b8552e7dbf9c8efa11ea4a388c3/argon2_cffi_bindings-25.1.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:8b8efee945193e667a396cbc7b4fb7d357297d6234d30a489905d96caabde56b", size = 29328, upload-time = "2025-07-30T10:01:41.916Z" }, + { url = "https://files.pythonhosted.org/packages/43/24/90a01c0ef12ac91a6be05969f29944643bc1e5e461155ae6559befa8f00b/argon2_cffi_bindings-25.1.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:3c6702abc36bf3ccba3f802b799505def420a1b7039862014a65db3205967f5a", size = 31269, upload-time = "2025-07-30T10:01:42.716Z" }, + { url = "https://files.pythonhosted.org/packages/d4/d3/942aa10782b2697eee7af5e12eeff5ebb325ccfb86dd8abda54174e377e4/argon2_cffi_bindings-25.1.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a1c70058c6ab1e352304ac7e3b52554daadacd8d453c1752e547c76e9c99ac44", size = 86558, upload-time = "2025-07-30T10:01:43.943Z" }, + { url = "https://files.pythonhosted.org/packages/0d/82/b484f702fec5536e71836fc2dbc8c5267b3f6e78d2d539b4eaa6f0db8bf8/argon2_cffi_bindings-25.1.0-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e2fd3bfbff3c5d74fef31a722f729bf93500910db650c925c2d6ef879a7e51cb", size = 92364, upload-time = "2025-07-30T10:01:44.887Z" }, + { url = "https://files.pythonhosted.org/packages/c9/c1/a606ff83b3f1735f3759ad0f2cd9e038a0ad11a3de3b6c673aa41c24bb7b/argon2_cffi_bindings-25.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c4f9665de60b1b0e99bcd6be4f17d90339698ce954cfd8d9cf4f91c995165a92", size = 85637, upload-time = "2025-07-30T10:01:46.225Z" }, + { url = "https://files.pythonhosted.org/packages/44/b4/678503f12aceb0262f84fa201f6027ed77d71c5019ae03b399b97caa2f19/argon2_cffi_bindings-25.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ba92837e4a9aa6a508c8d2d7883ed5a8f6c308c89a4790e1e447a220deb79a85", size = 91934, upload-time = "2025-07-30T10:01:47.203Z" }, + { url = "https://files.pythonhosted.org/packages/f0/c7/f36bd08ef9bd9f0a9cff9428406651f5937ce27b6c5b07b92d41f91ae541/argon2_cffi_bindings-25.1.0-cp314-cp314t-win32.whl", hash = "sha256:84a461d4d84ae1295871329b346a97f68eade8c53b6ed9a7ca2d7467f3c8ff6f", size = 28158, upload-time = "2025-07-30T10:01:48.341Z" }, + { url = "https://files.pythonhosted.org/packages/b3/80/0106a7448abb24a2c467bf7d527fe5413b7fdfa4ad6d6a96a43a62ef3988/argon2_cffi_bindings-25.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:b55aec3565b65f56455eebc9b9f34130440404f27fe21c3b375bf1ea4d8fbae6", size = 32597, upload-time = "2025-07-30T10:01:49.112Z" }, + { url = "https://files.pythonhosted.org/packages/05/b8/d663c9caea07e9180b2cb662772865230715cbd573ba3b5e81793d580316/argon2_cffi_bindings-25.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:87c33a52407e4c41f3b70a9c2d3f6056d88b10dad7695be708c5021673f55623", size = 28231, upload-time = "2025-07-30T10:01:49.92Z" }, + { url = "https://files.pythonhosted.org/packages/1d/57/96b8b9f93166147826da5f90376e784a10582dd39a393c99bb62cfcf52f0/argon2_cffi_bindings-25.1.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:aecba1723ae35330a008418a91ea6cfcedf6d31e5fbaa056a166462ff066d500", size = 54121, upload-time = "2025-07-30T10:01:50.815Z" }, + { url = "https://files.pythonhosted.org/packages/0a/08/a9bebdb2e0e602dde230bdde8021b29f71f7841bd54801bcfd514acb5dcf/argon2_cffi_bindings-25.1.0-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:2630b6240b495dfab90aebe159ff784d08ea999aa4b0d17efa734055a07d2f44", size = 29177, upload-time = "2025-07-30T10:01:51.681Z" }, + { url = "https://files.pythonhosted.org/packages/b6/02/d297943bcacf05e4f2a94ab6f462831dc20158614e5d067c35d4e63b9acb/argon2_cffi_bindings-25.1.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:7aef0c91e2c0fbca6fc68e7555aa60ef7008a739cbe045541e438373bc54d2b0", size = 31090, upload-time = "2025-07-30T10:01:53.184Z" }, + { url = "https://files.pythonhosted.org/packages/c1/93/44365f3d75053e53893ec6d733e4a5e3147502663554b4d864587c7828a7/argon2_cffi_bindings-25.1.0-cp39-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1e021e87faa76ae0d413b619fe2b65ab9a037f24c60a1e6cc43457ae20de6dc6", size = 81246, upload-time = "2025-07-30T10:01:54.145Z" }, + { url = "https://files.pythonhosted.org/packages/09/52/94108adfdd6e2ddf58be64f959a0b9c7d4ef2fa71086c38356d22dc501ea/argon2_cffi_bindings-25.1.0-cp39-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d3e924cfc503018a714f94a49a149fdc0b644eaead5d1f089330399134fa028a", size = 87126, upload-time = "2025-07-30T10:01:55.074Z" }, + { url = "https://files.pythonhosted.org/packages/72/70/7a2993a12b0ffa2a9271259b79cc616e2389ed1a4d93842fac5a1f923ffd/argon2_cffi_bindings-25.1.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c87b72589133f0346a1cb8d5ecca4b933e3c9b64656c9d175270a000e73b288d", size = 80343, upload-time = "2025-07-30T10:01:56.007Z" }, + { url = "https://files.pythonhosted.org/packages/78/9a/4e5157d893ffc712b74dbd868c7f62365618266982b64accab26bab01edc/argon2_cffi_bindings-25.1.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:1db89609c06afa1a214a69a462ea741cf735b29a57530478c06eb81dd403de99", size = 86777, upload-time = "2025-07-30T10:01:56.943Z" }, + { url = "https://files.pythonhosted.org/packages/74/cd/15777dfde1c29d96de7f18edf4cc94c385646852e7c7b0320aa91ccca583/argon2_cffi_bindings-25.1.0-cp39-abi3-win32.whl", hash = "sha256:473bcb5f82924b1becbb637b63303ec8d10e84c8d241119419897a26116515d2", size = 27180, upload-time = "2025-07-30T10:01:57.759Z" }, + { url = "https://files.pythonhosted.org/packages/e2/c6/a759ece8f1829d1f162261226fbfd2c6832b3ff7657384045286d2afa384/argon2_cffi_bindings-25.1.0-cp39-abi3-win_amd64.whl", hash = "sha256:a98cd7d17e9f7ce244c0803cad3c23a7d379c301ba618a5fa76a67d116618b98", size = 31715, upload-time = "2025-07-30T10:01:58.56Z" }, + { url = "https://files.pythonhosted.org/packages/42/b9/f8d6fa329ab25128b7e98fd83a3cb34d9db5b059a9847eddb840a0af45dd/argon2_cffi_bindings-25.1.0-cp39-abi3-win_arm64.whl", hash = "sha256:b0fdbcf513833809c882823f98dc2f931cf659d9a1429616ac3adebb49f5db94", size = 27149, upload-time = "2025-07-30T10:01:59.329Z" }, +] + +[[package]] +name = "arrow" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "python-dateutil" }, + { name = "tzdata" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b9/33/032cdc44182491aa708d06a68b62434140d8c50820a087fac7af37703357/arrow-1.4.0.tar.gz", hash = "sha256:ed0cc050e98001b8779e84d461b0098c4ac597e88704a655582b21d116e526d7", size = 152931, upload-time = "2025-10-18T17:46:46.761Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ed/c9/d7977eaacb9df673210491da99e6a247e93df98c715fc43fd136ce1d3d33/arrow-1.4.0-py3-none-any.whl", hash = "sha256:749f0769958ebdc79c173ff0b0670d59051a535fa26e8eba02953dc19eb43205", size = 68797, upload-time = "2025-10-18T17:46:45.663Z" }, +] + +[[package]] +name = "asttokens" +version = "3.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/be/a5/8e3f9b6771b0b408517c82d97aed8f2036509bc247d46114925e32fe33f0/asttokens-3.0.1.tar.gz", hash = "sha256:71a4ee5de0bde6a31d64f6b13f2293ac190344478f081c3d1bccfcf5eacb0cb7", size = 62308, upload-time = "2025-11-15T16:43:48.578Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/39/e7eaf1799466a4aef85b6a4fe7bd175ad2b1c6345066aa33f1f58d4b18d0/asttokens-3.0.1-py3-none-any.whl", hash = "sha256:15a3ebc0f43c2d0a50eeafea25e19046c68398e487b9f1f5b517f7c0f40f976a", size = 27047, upload-time = "2025-11-15T16:43:16.109Z" }, +] + +[[package]] +name = "async-lru" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e8/1f/989ecfef8e64109a489fff357450cb73fa73a865a92bd8c272170a6922c2/async_lru-2.3.0.tar.gz", hash = "sha256:89bdb258a0140d7313cf8f4031d816a042202faa61d0ab310a0a538baa1c24b6", size = 16332, upload-time = "2026-03-19T01:04:32.413Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/e2/c2e3abf398f80732e58b03be77bde9022550d221dd8781bf586bd4d97cc1/async_lru-2.3.0-py3-none-any.whl", hash = "sha256:eea27b01841909316f2cc739807acea1c623df2be8c5cfad7583286397bb8315", size = 8403, upload-time = "2026-03-19T01:04:30.883Z" }, +] + +[[package]] +name = "attrs" +version = "26.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9a/8e/82a0fe20a541c03148528be8cac2408564a6c9a0cc7e9171802bc1d26985/attrs-26.1.0.tar.gz", hash = "sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32", size = 952055, upload-time = "2026-03-19T14:22:25.026Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl", hash = "sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309", size = 67548, upload-time = "2026-03-19T14:22:23.645Z" }, +] + +[[package]] +name = "babel" +version = "2.18.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7d/b2/51899539b6ceeeb420d40ed3cd4b7a40519404f9baf3d4ac99dc413a834b/babel-2.18.0.tar.gz", hash = "sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d", size = 9959554, upload-time = "2026-02-01T12:30:56.078Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/77/f5/21d2de20e8b8b0408f0681956ca2c69f1320a3848ac50e6e7f39c6159675/babel-2.18.0-py3-none-any.whl", hash = "sha256:e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35", size = 10196845, upload-time = "2026-02-01T12:30:53.445Z" }, +] + +[[package]] +name = "beautifulsoup4" +version = "4.14.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "soupsieve" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c3/b0/1c6a16426d389813b48d95e26898aff79abbde42ad353958ad95cc8c9b21/beautifulsoup4-4.14.3.tar.gz", hash = "sha256:6292b1c5186d356bba669ef9f7f051757099565ad9ada5dd630bd9de5fa7fb86", size = 627737, upload-time = "2025-11-30T15:08:26.084Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1a/39/47f9197bdd44df24d67ac8893641e16f386c984a0619ef2ee4c51fbbc019/beautifulsoup4-4.14.3-py3-none-any.whl", hash = "sha256:0918bfe44902e6ad8d57732ba310582e98da931428d231a5ecb9e7c703a735bb", size = 107721, upload-time = "2025-11-30T15:08:24.087Z" }, +] + +[[package]] +name = "bleach" +version = "6.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "webencodings" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/07/18/3c8523962314be6bf4c8989c79ad9531c825210dd13a8669f6b84336e8bd/bleach-6.3.0.tar.gz", hash = "sha256:6f3b91b1c0a02bb9a78b5a454c92506aa0fdf197e1d5e114d2e00c6f64306d22", size = 203533, upload-time = "2025-10-27T17:57:39.211Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cd/3a/577b549de0cc09d95f11087ee63c739bba856cd3952697eec4c4bb91350a/bleach-6.3.0-py3-none-any.whl", hash = "sha256:fe10ec77c93ddf3d13a73b035abaac7a9f5e436513864ccdad516693213c65d6", size = 164437, upload-time = "2025-10-27T17:57:37.538Z" }, +] + +[package.optional-dependencies] +css = [ + { name = "tinycss2" }, +] + +[[package]] +name = "certifi" +version = "2026.5.20" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/ce/ee2ecad540810a79593028e88299baeae54d346cc7a0d94b6199988b89b1/certifi-2026.5.20.tar.gz", hash = "sha256:69dea482ab64caa7b9f6aba1c6bf48bb6a5448d1c0f1b17ab42ad8c763a5344d", size = 135422, upload-time = "2026-05-20T11:46:50.073Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/59/8c/57e832b7af6d7c5abe66eb3fbe3a3a32f4d11ea23a1aa7131371035be991/certifi-2026.5.20-py3-none-any.whl", hash = "sha256:3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897", size = 134134, upload-time = "2026-05-20T11:46:48.578Z" }, +] + +[[package]] +name = "cffi" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser", marker = "implementation_name != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload-time = "2025-09-08T23:24:04.541Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/92/c4/3ce07396253a83250ee98564f8d7e9789fab8e58858f35d07a9a2c78de9f/cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5", size = 185320, upload-time = "2025-09-08T23:23:18.087Z" }, + { url = "https://files.pythonhosted.org/packages/59/dd/27e9fa567a23931c838c6b02d0764611c62290062a6d4e8ff7863daf9730/cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13", size = 181487, upload-time = "2025-09-08T23:23:19.622Z" }, + { url = "https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b", size = 220049, upload-time = "2025-09-08T23:23:20.853Z" }, + { url = "https://files.pythonhosted.org/packages/b4/89/76799151d9c2d2d1ead63c2429da9ea9d7aac304603de0c6e8764e6e8e70/cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c", size = 207793, upload-time = "2025-09-08T23:23:22.08Z" }, + { url = "https://files.pythonhosted.org/packages/bb/dd/3465b14bb9e24ee24cb88c9e3730f6de63111fffe513492bf8c808a3547e/cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef", size = 206300, upload-time = "2025-09-08T23:23:23.314Z" }, + { url = "https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775", size = 219244, upload-time = "2025-09-08T23:23:24.541Z" }, + { url = "https://files.pythonhosted.org/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205", size = 222828, upload-time = "2025-09-08T23:23:26.143Z" }, + { url = "https://files.pythonhosted.org/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1", size = 220926, upload-time = "2025-09-08T23:23:27.873Z" }, + { url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328, upload-time = "2025-09-08T23:23:44.61Z" }, + { url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650, upload-time = "2025-09-08T23:23:45.848Z" }, + { url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687, upload-time = "2025-09-08T23:23:47.105Z" }, + { url = "https://files.pythonhosted.org/packages/3e/61/c768e4d548bfa607abcda77423448df8c471f25dbe64fb2ef6d555eae006/cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9", size = 188773, upload-time = "2025-09-08T23:23:29.347Z" }, + { url = "https://files.pythonhosted.org/packages/2c/ea/5f76bce7cf6fcd0ab1a1058b5af899bfbef198bea4d5686da88471ea0336/cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d", size = 185013, upload-time = "2025-09-08T23:23:30.63Z" }, + { url = "https://files.pythonhosted.org/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c", size = 221593, upload-time = "2025-09-08T23:23:31.91Z" }, + { url = "https://files.pythonhosted.org/packages/e0/0d/eb704606dfe8033e7128df5e90fee946bbcb64a04fcdaa97321309004000/cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8", size = 209354, upload-time = "2025-09-08T23:23:33.214Z" }, + { url = "https://files.pythonhosted.org/packages/d8/19/3c435d727b368ca475fb8742ab97c9cb13a0de600ce86f62eab7fa3eea60/cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc", size = 208480, upload-time = "2025-09-08T23:23:34.495Z" }, + { url = "https://files.pythonhosted.org/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592", size = 221584, upload-time = "2025-09-08T23:23:36.096Z" }, + { url = "https://files.pythonhosted.org/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512", size = 224443, upload-time = "2025-09-08T23:23:37.328Z" }, + { url = "https://files.pythonhosted.org/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4", size = 223437, upload-time = "2025-09-08T23:23:38.945Z" }, + { url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487, upload-time = "2025-09-08T23:23:40.423Z" }, + { url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726, upload-time = "2025-09-08T23:23:41.742Z" }, + { url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195, upload-time = "2025-09-08T23:23:43.004Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/a1/67fe25fac3c7642725500a3f6cfe5821ad557c3abb11c9d20d12c7008d3e/charset_normalizer-3.4.7.tar.gz", hash = "sha256:ae89db9e5f98a11a4bf50407d4363e7b09b31e55bc117b4f7d80aab97ba009e5", size = 144271, upload-time = "2026-04-02T09:28:39.342Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/97/c8/c67cb8c70e19ef1960b97b22ed2a1567711de46c4ddf19799923adc836c2/charset_normalizer-3.4.7-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:c36c333c39be2dbca264d7803333c896ab8fa7d4d6f0ab7edb7dfd7aea6e98c0", size = 309234, upload-time = "2026-04-02T09:27:07.194Z" }, + { url = "https://files.pythonhosted.org/packages/99/85/c091fdee33f20de70d6c8b522743b6f831a2f1cd3ff86de4c6a827c48a76/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1c2aed2e5e41f24ea8ef1590b8e848a79b56f3a5564a65ceec43c9d692dc7d8a", size = 208042, upload-time = "2026-04-02T09:27:08.749Z" }, + { url = "https://files.pythonhosted.org/packages/87/1c/ab2ce611b984d2fd5d86a5a8a19c1ae26acac6bad967da4967562c75114d/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:54523e136b8948060c0fa0bc7b1b50c32c186f2fceee897a495406bb6e311d2b", size = 228706, upload-time = "2026-04-02T09:27:09.951Z" }, + { url = "https://files.pythonhosted.org/packages/a8/29/2b1d2cb00bf085f59d29eb773ce58ec2d325430f8c216804a0a5cd83cbca/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:715479b9a2802ecac752a3b0efa2b0b60285cf962ee38414211abdfccc233b41", size = 224727, upload-time = "2026-04-02T09:27:11.175Z" }, + { url = "https://files.pythonhosted.org/packages/47/5c/032c2d5a07fe4d4855fea851209cca2b6f03ebeb6d4e3afdb3358386a684/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bd6c2a1c7573c64738d716488d2cdd3c00e340e4835707d8fdb8dc1a66ef164e", size = 215882, upload-time = "2026-04-02T09:27:12.446Z" }, + { url = "https://files.pythonhosted.org/packages/2c/c2/356065d5a8b78ed04499cae5f339f091946a6a74f91e03476c33f0ab7100/charset_normalizer-3.4.7-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:c45e9440fb78f8ddabcf714b68f936737a121355bf59f3907f4e17721b9d1aae", size = 200860, upload-time = "2026-04-02T09:27:13.721Z" }, + { url = "https://files.pythonhosted.org/packages/0c/cd/a32a84217ced5039f53b29f460962abb2d4420def55afabe45b1c3c7483d/charset_normalizer-3.4.7-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3534e7dcbdcf757da6b85a0bbf5b6868786d5982dd959b065e65481644817a18", size = 211564, upload-time = "2026-04-02T09:27:15.272Z" }, + { url = "https://files.pythonhosted.org/packages/44/86/58e6f13ce26cc3b8f4a36b94a0f22ae2f00a72534520f4ae6857c4b81f89/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e8ac484bf18ce6975760921bb6148041faa8fef0547200386ea0b52b5d27bf7b", size = 211276, upload-time = "2026-04-02T09:27:16.834Z" }, + { url = "https://files.pythonhosted.org/packages/8f/fe/d17c32dc72e17e155e06883efa84514ca375f8a528ba2546bee73fc4df81/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:a5fe03b42827c13cdccd08e6c0247b6a6d4b5e3cdc53fd1749f5896adcdc2356", size = 201238, upload-time = "2026-04-02T09:27:18.229Z" }, + { url = "https://files.pythonhosted.org/packages/6a/29/f33daa50b06525a237451cdb6c69da366c381a3dadcd833fa5676bc468b3/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:2d6eb928e13016cea4f1f21d1e10c1cebd5a421bc57ddf5b1142ae3f86824fab", size = 230189, upload-time = "2026-04-02T09:27:19.445Z" }, + { url = "https://files.pythonhosted.org/packages/b6/6e/52c84015394a6a0bdcd435210a7e944c5f94ea1055f5cc5d56c5fe368e7b/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:e74327fb75de8986940def6e8dee4f127cc9752bee7355bb323cc5b2659b6d46", size = 211352, upload-time = "2026-04-02T09:27:20.79Z" }, + { url = "https://files.pythonhosted.org/packages/8c/d7/4353be581b373033fb9198bf1da3cf8f09c1082561e8e922aa7b39bf9fe8/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:d6038d37043bced98a66e68d3aa2b6a35505dc01328cd65217cefe82f25def44", size = 227024, upload-time = "2026-04-02T09:27:22.063Z" }, + { url = "https://files.pythonhosted.org/packages/30/45/99d18aa925bd1740098ccd3060e238e21115fffbfdcb8f3ece837d0ace6c/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7579e913a5339fb8fa133f6bbcfd8e6749696206cf05acdbdca71a1b436d8e72", size = 217869, upload-time = "2026-04-02T09:27:23.486Z" }, + { url = "https://files.pythonhosted.org/packages/5c/05/5ee478aa53f4bb7996482153d4bfe1b89e0f087f0ab6b294fcf92d595873/charset_normalizer-3.4.7-cp314-cp314-win32.whl", hash = "sha256:5b77459df20e08151cd6f8b9ef8ef1f961ef73d85c21a555c7eed5b79410ec10", size = 148541, upload-time = "2026-04-02T09:27:25.146Z" }, + { url = "https://files.pythonhosted.org/packages/48/77/72dcb0921b2ce86420b2d79d454c7022bf5be40202a2a07906b9f2a35c97/charset_normalizer-3.4.7-cp314-cp314-win_amd64.whl", hash = "sha256:92a0a01ead5e668468e952e4238cccd7c537364eb7d851ab144ab6627dbbe12f", size = 159634, upload-time = "2026-04-02T09:27:26.642Z" }, + { url = "https://files.pythonhosted.org/packages/c6/a3/c2369911cd72f02386e4e340770f6e158c7980267da16af8f668217abaa0/charset_normalizer-3.4.7-cp314-cp314-win_arm64.whl", hash = "sha256:67f6279d125ca0046a7fd386d01b311c6363844deac3e5b069b514ba3e63c246", size = 148384, upload-time = "2026-04-02T09:27:28.271Z" }, + { url = "https://files.pythonhosted.org/packages/94/09/7e8a7f73d24dba1f0035fbbf014d2c36828fc1bf9c88f84093e57d315935/charset_normalizer-3.4.7-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:effc3f449787117233702311a1b7d8f59cba9ced946ba727bdc329ec69028e24", size = 330133, upload-time = "2026-04-02T09:27:29.474Z" }, + { url = "https://files.pythonhosted.org/packages/8d/da/96975ddb11f8e977f706f45cddd8540fd8242f71ecdb5d18a80723dcf62c/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fbccdc05410c9ee21bbf16a35f4c1d16123dcdeb8a1d38f33654fa21d0234f79", size = 216257, upload-time = "2026-04-02T09:27:30.793Z" }, + { url = "https://files.pythonhosted.org/packages/e5/e8/1d63bf8ef2d388e95c64b2098f45f84758f6d102a087552da1485912637b/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:733784b6d6def852c814bce5f318d25da2ee65dd4839a0718641c696e09a2960", size = 234851, upload-time = "2026-04-02T09:27:32.44Z" }, + { url = "https://files.pythonhosted.org/packages/9b/40/e5ff04233e70da2681fa43969ad6f66ca5611d7e669be0246c4c7aaf6dc8/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a89c23ef8d2c6b27fd200a42aa4ac72786e7c60d40efdc76e6011260b6e949c4", size = 233393, upload-time = "2026-04-02T09:27:34.03Z" }, + { url = "https://files.pythonhosted.org/packages/be/c1/06c6c49d5a5450f76899992f1ee40b41d076aee9279b49cf9974d2f313d5/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6c114670c45346afedc0d947faf3c7f701051d2518b943679c8ff88befe14f8e", size = 223251, upload-time = "2026-04-02T09:27:35.369Z" }, + { url = "https://files.pythonhosted.org/packages/2b/9f/f2ff16fb050946169e3e1f82134d107e5d4ae72647ec8a1b1446c148480f/charset_normalizer-3.4.7-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:a180c5e59792af262bf263b21a3c49353f25945d8d9f70628e73de370d55e1e1", size = 206609, upload-time = "2026-04-02T09:27:36.661Z" }, + { url = "https://files.pythonhosted.org/packages/69/d5/a527c0cd8d64d2eab7459784fb4169a0ac76e5a6fc5237337982fd61347e/charset_normalizer-3.4.7-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3c9a494bc5ec77d43cea229c4f6db1e4d8fe7e1bbffa8b6f0f0032430ff8ab44", size = 220014, upload-time = "2026-04-02T09:27:38.019Z" }, + { url = "https://files.pythonhosted.org/packages/7e/80/8a7b8104a3e203074dc9aa2c613d4b726c0e136bad1cc734594b02867972/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8d828b6667a32a728a1ad1d93957cdf37489c57b97ae6c4de2860fa749b8fc1e", size = 218979, upload-time = "2026-04-02T09:27:39.37Z" }, + { url = "https://files.pythonhosted.org/packages/02/9a/b759b503d507f375b2b5c153e4d2ee0a75aa215b7f2489cf314f4541f2c0/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:cf1493cd8607bec4d8a7b9b004e699fcf8f9103a9284cc94962cb73d20f9d4a3", size = 209238, upload-time = "2026-04-02T09:27:40.722Z" }, + { url = "https://files.pythonhosted.org/packages/c2/4e/0f3f5d47b86bdb79256e7290b26ac847a2832d9a4033f7eb2cd4bcf4bb5b/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:0c96c3b819b5c3e9e165495db84d41914d6894d55181d2d108cc1a69bfc9cce0", size = 236110, upload-time = "2026-04-02T09:27:42.33Z" }, + { url = "https://files.pythonhosted.org/packages/96/23/bce28734eb3ed2c91dcf93abeb8a5cf393a7b2749725030bb630e554fdd8/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:752a45dc4a6934060b3b0dab47e04edc3326575f82be64bc4fc293914566503e", size = 219824, upload-time = "2026-04-02T09:27:43.924Z" }, + { url = "https://files.pythonhosted.org/packages/2c/6f/6e897c6984cc4d41af319b077f2f600fc8214eb2fe2d6bcb79141b882400/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:8778f0c7a52e56f75d12dae53ae320fae900a8b9b4164b981b9c5ce059cd1fcb", size = 233103, upload-time = "2026-04-02T09:27:45.348Z" }, + { url = "https://files.pythonhosted.org/packages/76/22/ef7bd0fe480a0ae9b656189ec00744b60933f68b4f42a7bb06589f6f576a/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ce3412fbe1e31eb81ea42f4169ed94861c56e643189e1e75f0041f3fe7020abe", size = 225194, upload-time = "2026-04-02T09:27:46.706Z" }, + { url = "https://files.pythonhosted.org/packages/c5/a7/0e0ab3e0b5bc1219bd80a6a0d4d72ca74d9250cb2382b7c699c147e06017/charset_normalizer-3.4.7-cp314-cp314t-win32.whl", hash = "sha256:c03a41a8784091e67a39648f70c5f97b5b6a37f216896d44d2cdcb82615339a0", size = 159827, upload-time = "2026-04-02T09:27:48.053Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1d/29d32e0fb40864b1f878c7f5a0b343ae676c6e2b271a2d55cc3a152391da/charset_normalizer-3.4.7-cp314-cp314t-win_amd64.whl", hash = "sha256:03853ed82eeebbce3c2abfdbc98c96dc205f32a79627688ac9a27370ea61a49c", size = 174168, upload-time = "2026-04-02T09:27:49.795Z" }, + { url = "https://files.pythonhosted.org/packages/de/32/d92444ad05c7a6e41fb2036749777c163baf7a0301a040cb672d6b2b1ae9/charset_normalizer-3.4.7-cp314-cp314t-win_arm64.whl", hash = "sha256:c35abb8bfff0185efac5878da64c45dafd2b37fb0383add1be155a763c1f083d", size = 153018, upload-time = "2026-04-02T09:27:51.116Z" }, + { url = "https://files.pythonhosted.org/packages/db/8f/61959034484a4a7c527811f4721e75d02d653a35afb0b6054474d8185d4c/charset_normalizer-3.4.7-py3-none-any.whl", hash = "sha256:3dce51d0f5e7951f8bb4900c257dad282f49190fdbebecd4ba99bcc41fef404d", size = 61958, upload-time = "2026-04-02T09:28:37.794Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "comm" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4c/13/7d740c5849255756bc17888787313b61fd38a0a8304fc4f073dfc46122aa/comm-0.2.3.tar.gz", hash = "sha256:2dc8048c10962d55d7ad693be1e7045d891b7ce8d999c97963a5e3e99c055971", size = 6319, upload-time = "2025-07-25T14:02:04.452Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/60/97/891a0971e1e4a8c5d2b20bbe0e524dc04548d2307fee33cdeba148fd4fc7/comm-0.2.3-py3-none-any.whl", hash = "sha256:c615d91d75f7f04f095b30d1c1711babd43bdc6419c1be9886a85f2f4e489417", size = 7294, upload-time = "2025-07-25T14:02:02.896Z" }, +] + +[[package]] +name = "contourpy" +version = "1.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/58/01/1253e6698a07380cd31a736d248a3f2a50a7c88779a1813da27503cadc2a/contourpy-1.3.3.tar.gz", hash = "sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880", size = 13466174, upload-time = "2025-07-26T12:03:12.549Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/72/8b/4546f3ab60f78c514ffb7d01a0bd743f90de36f0019d1be84d0a708a580a/contourpy-1.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fde6c716d51c04b1c25d0b90364d0be954624a0ee9d60e23e850e8d48353d07a", size = 292189, upload-time = "2025-07-26T12:02:16.095Z" }, + { url = "https://files.pythonhosted.org/packages/fd/e1/3542a9cb596cadd76fcef413f19c79216e002623158befe6daa03dbfa88c/contourpy-1.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:cbedb772ed74ff5be440fa8eee9bd49f64f6e3fc09436d9c7d8f1c287b121d77", size = 273251, upload-time = "2025-07-26T12:02:17.524Z" }, + { url = "https://files.pythonhosted.org/packages/b1/71/f93e1e9471d189f79d0ce2497007731c1e6bf9ef6d1d61b911430c3db4e5/contourpy-1.3.3-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:22e9b1bd7a9b1d652cd77388465dc358dafcd2e217d35552424aa4f996f524f5", size = 335810, upload-time = "2025-07-26T12:02:18.9Z" }, + { url = "https://files.pythonhosted.org/packages/91/f9/e35f4c1c93f9275d4e38681a80506b5510e9327350c51f8d4a5a724d178c/contourpy-1.3.3-cp314-cp314-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a22738912262aa3e254e4f3cb079a95a67132fc5a063890e224393596902f5a4", size = 382871, upload-time = "2025-07-26T12:02:20.418Z" }, + { url = "https://files.pythonhosted.org/packages/b5/71/47b512f936f66a0a900d81c396a7e60d73419868fba959c61efed7a8ab46/contourpy-1.3.3-cp314-cp314-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:afe5a512f31ee6bd7d0dda52ec9864c984ca3d66664444f2d72e0dc4eb832e36", size = 386264, upload-time = "2025-07-26T12:02:21.916Z" }, + { url = "https://files.pythonhosted.org/packages/04/5f/9ff93450ba96b09c7c2b3f81c94de31c89f92292f1380261bd7195bea4ea/contourpy-1.3.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f64836de09927cba6f79dcd00fdd7d5329f3fccc633468507079c829ca4db4e3", size = 363819, upload-time = "2025-07-26T12:02:23.759Z" }, + { url = "https://files.pythonhosted.org/packages/3e/a6/0b185d4cc480ee494945cde102cb0149ae830b5fa17bf855b95f2e70ad13/contourpy-1.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:1fd43c3be4c8e5fd6e4f2baeae35ae18176cf2e5cced681cca908addf1cdd53b", size = 1333650, upload-time = "2025-07-26T12:02:26.181Z" }, + { url = "https://files.pythonhosted.org/packages/43/d7/afdc95580ca56f30fbcd3060250f66cedbde69b4547028863abd8aa3b47e/contourpy-1.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6afc576f7b33cf00996e5c1102dc2a8f7cc89e39c0b55df93a0b78c1bd992b36", size = 1404833, upload-time = "2025-07-26T12:02:28.782Z" }, + { url = "https://files.pythonhosted.org/packages/e2/e2/366af18a6d386f41132a48f033cbd2102e9b0cf6345d35ff0826cd984566/contourpy-1.3.3-cp314-cp314-win32.whl", hash = "sha256:66c8a43a4f7b8df8b71ee1840e4211a3c8d93b214b213f590e18a1beca458f7d", size = 189692, upload-time = "2025-07-26T12:02:30.128Z" }, + { url = "https://files.pythonhosted.org/packages/7d/c2/57f54b03d0f22d4044b8afb9ca0e184f8b1afd57b4f735c2fa70883dc601/contourpy-1.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:cf9022ef053f2694e31d630feaacb21ea24224be1c3ad0520b13d844274614fd", size = 232424, upload-time = "2025-07-26T12:02:31.395Z" }, + { url = "https://files.pythonhosted.org/packages/18/79/a9416650df9b525737ab521aa181ccc42d56016d2123ddcb7b58e926a42c/contourpy-1.3.3-cp314-cp314-win_arm64.whl", hash = "sha256:95b181891b4c71de4bb404c6621e7e2390745f887f2a026b2d99e92c17892339", size = 198300, upload-time = "2025-07-26T12:02:32.956Z" }, + { url = "https://files.pythonhosted.org/packages/1f/42/38c159a7d0f2b7b9c04c64ab317042bb6952b713ba875c1681529a2932fe/contourpy-1.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:33c82d0138c0a062380332c861387650c82e4cf1747aaa6938b9b6516762e772", size = 306769, upload-time = "2025-07-26T12:02:34.2Z" }, + { url = "https://files.pythonhosted.org/packages/c3/6c/26a8205f24bca10974e77460de68d3d7c63e282e23782f1239f226fcae6f/contourpy-1.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ea37e7b45949df430fe649e5de8351c423430046a2af20b1c1961cae3afcda77", size = 287892, upload-time = "2025-07-26T12:02:35.807Z" }, + { url = "https://files.pythonhosted.org/packages/66/06/8a475c8ab718ebfd7925661747dbb3c3ee9c82ac834ccb3570be49d129f4/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d304906ecc71672e9c89e87c4675dc5c2645e1f4269a5063b99b0bb29f232d13", size = 326748, upload-time = "2025-07-26T12:02:37.193Z" }, + { url = "https://files.pythonhosted.org/packages/b4/a3/c5ca9f010a44c223f098fccd8b158bb1cb287378a31ac141f04730dc49be/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ca658cd1a680a5c9ea96dc61cdbae1e85c8f25849843aa799dfd3cb370ad4fbe", size = 375554, upload-time = "2025-07-26T12:02:38.894Z" }, + { url = "https://files.pythonhosted.org/packages/80/5b/68bd33ae63fac658a4145088c1e894405e07584a316738710b636c6d0333/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ab2fd90904c503739a75b7c8c5c01160130ba67944a7b77bbf36ef8054576e7f", size = 388118, upload-time = "2025-07-26T12:02:40.642Z" }, + { url = "https://files.pythonhosted.org/packages/40/52/4c285a6435940ae25d7410a6c36bda5145839bc3f0beb20c707cda18b9d2/contourpy-1.3.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7301b89040075c30e5768810bc96a8e8d78085b47d8be6e4c3f5a0b4ed478a0", size = 352555, upload-time = "2025-07-26T12:02:42.25Z" }, + { url = "https://files.pythonhosted.org/packages/24/ee/3e81e1dd174f5c7fefe50e85d0892de05ca4e26ef1c9a59c2a57e43b865a/contourpy-1.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:2a2a8b627d5cc6b7c41a4beff6c5ad5eb848c88255fda4a8745f7e901b32d8e4", size = 1322295, upload-time = "2025-07-26T12:02:44.668Z" }, + { url = "https://files.pythonhosted.org/packages/3c/b2/6d913d4d04e14379de429057cd169e5e00f6c2af3bb13e1710bcbdb5da12/contourpy-1.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:fd6ec6be509c787f1caf6b247f0b1ca598bef13f4ddeaa126b7658215529ba0f", size = 1391027, upload-time = "2025-07-26T12:02:47.09Z" }, + { url = "https://files.pythonhosted.org/packages/93/8a/68a4ec5c55a2971213d29a9374913f7e9f18581945a7a31d1a39b5d2dfe5/contourpy-1.3.3-cp314-cp314t-win32.whl", hash = "sha256:e74a9a0f5e3fff48fb5a7f2fd2b9b70a3fe014a67522f79b7cca4c0c7e43c9ae", size = 202428, upload-time = "2025-07-26T12:02:48.691Z" }, + { url = "https://files.pythonhosted.org/packages/fa/96/fd9f641ffedc4fa3ace923af73b9d07e869496c9cc7a459103e6e978992f/contourpy-1.3.3-cp314-cp314t-win_amd64.whl", hash = "sha256:13b68d6a62db8eafaebb8039218921399baf6e47bf85006fd8529f2a08ef33fc", size = 250331, upload-time = "2025-07-26T12:02:50.137Z" }, + { url = "https://files.pythonhosted.org/packages/ae/8c/469afb6465b853afff216f9528ffda78a915ff880ed58813ba4faf4ba0b6/contourpy-1.3.3-cp314-cp314t-win_arm64.whl", hash = "sha256:b7448cb5a725bb1e35ce88771b86fba35ef418952474492cf7c764059933ff8b", size = 203831, upload-time = "2025-07-26T12:02:51.449Z" }, +] + +[[package]] +name = "cycler" +version = "0.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a9/95/a3dbbb5028f35eafb79008e7522a75244477d2838f38cbb722248dabc2a8/cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c", size = 7615, upload-time = "2023-10-07T05:32:18.335Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321, upload-time = "2023-10-07T05:32:16.783Z" }, +] + +[[package]] +name = "debugpy" +version = "1.8.20" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/b7/cd8080344452e4874aae67c40d8940e2b4d47b01601a8fd9f44786c757c7/debugpy-1.8.20.tar.gz", hash = "sha256:55bc8701714969f1ab89a6d5f2f3d40c36f91b2cbe2f65d98bf8196f6a6a2c33", size = 1645207, upload-time = "2026-01-29T23:03:28.199Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/2e/f6cb9a8a13f5058f0a20fe09711a7b726232cd5a78c6a7c05b2ec726cff9/debugpy-1.8.20-cp314-cp314-macosx_15_0_universal2.whl", hash = "sha256:9c74df62fc064cd5e5eaca1353a3ef5a5d50da5eb8058fcef63106f7bebe6173", size = 2538066, upload-time = "2026-01-29T23:03:54.999Z" }, + { url = "https://files.pythonhosted.org/packages/c5/56/6ddca50b53624e1ca3ce1d1e49ff22db46c47ea5fb4c0cc5c9b90a616364/debugpy-1.8.20-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:077a7447589ee9bc1ff0cdf443566d0ecf540ac8aa7333b775ebcb8ce9f4ecad", size = 4269425, upload-time = "2026-01-29T23:03:56.518Z" }, + { url = "https://files.pythonhosted.org/packages/c5/d9/d64199c14a0d4c476df46c82470a3ce45c8d183a6796cfb5e66533b3663c/debugpy-1.8.20-cp314-cp314-win32.whl", hash = "sha256:352036a99dd35053b37b7803f748efc456076f929c6a895556932eaf2d23b07f", size = 5331407, upload-time = "2026-01-29T23:03:58.481Z" }, + { url = "https://files.pythonhosted.org/packages/e0/d9/1f07395b54413432624d61524dfd98c1a7c7827d2abfdb8829ac92638205/debugpy-1.8.20-cp314-cp314-win_amd64.whl", hash = "sha256:a98eec61135465b062846112e5ecf2eebb855305acc1dfbae43b72903b8ab5be", size = 5372521, upload-time = "2026-01-29T23:03:59.864Z" }, + { url = "https://files.pythonhosted.org/packages/e0/c3/7f67dea8ccf8fdcb9c99033bbe3e90b9e7395415843accb81428c441be2d/debugpy-1.8.20-py2.py3-none-any.whl", hash = "sha256:5be9bed9ae3be00665a06acaa48f8329d2b9632f15fd09f6a9a8c8d9907e54d7", size = 5337658, upload-time = "2026-01-29T23:04:17.404Z" }, +] + +[[package]] +name = "decorator" +version = "5.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/60/8b/32f9823da46cde7df2087faa08cd98d01b908f8dcab982cdba9c84e85355/decorator-5.3.1.tar.gz", hash = "sha256:4cbcdd55a6efadb9dbea26b858f4fb3264567b52d69ca0d25b721b553f60ea82", size = 58084, upload-time = "2026-05-18T06:03:28.057Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/05/7f/798705f5296a58ca505d600456748d1be48078eac8a7050d8a98bc9edb89/decorator-5.3.1-py3-none-any.whl", hash = "sha256:f47fe6fdbd2edd623ecfe36875d37aba411624e2670dd395dddae1358689bb3c", size = 10365, upload-time = "2026-05-18T06:03:26.517Z" }, +] + +[[package]] +name = "defusedxml" +version = "0.7.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0f/d5/c66da9b79e5bdb124974bfe172b4daf3c984ebd9c2a06e2b8a4dc7331c72/defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69", size = 75520, upload-time = "2021-03-08T10:59:26.269Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61", size = 25604, upload-time = "2021-03-08T10:59:24.45Z" }, +] [[package]] name = "dotenv" @@ -13,6 +335,932 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b2/b7/545d2c10c1fc15e48653c91efde329a790f2eecfbbf2bd16003b5db2bab0/dotenv-0.9.9-py2.py3-none-any.whl", hash = "sha256:29cf74a087b31dafdb5a446b6d7e11cbce8ed2741540e2339c69fbef92c94ce9", size = 1892, upload-time = "2025-02-19T22:15:01.647Z" }, ] +[[package]] +name = "executing" +version = "2.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cc/28/c14e053b6762b1044f34a13aab6859bbf40456d37d23aa286ac24cfd9a5d/executing-2.2.1.tar.gz", hash = "sha256:3632cc370565f6648cc328b32435bd120a1e4ebb20c77e3fdde9a13cd1e533c4", size = 1129488, upload-time = "2025-09-01T09:48:10.866Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl", hash = "sha256:760643d3452b4d777d295bb167ccc74c64a81df23fb5e08eff250c425a4b2017", size = 28317, upload-time = "2025-09-01T09:48:08.5Z" }, +] + +[[package]] +name = "fastjsonschema" +version = "2.21.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/b5/23b216d9d985a956623b6bd12d4086b60f0059b27799f23016af04a74ea1/fastjsonschema-2.21.2.tar.gz", hash = "sha256:b1eb43748041c880796cd077f1a07c3d94e93ae84bba5ed36800a33554ae05de", size = 374130, upload-time = "2025-08-14T18:49:36.666Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/a8/20d0723294217e47de6d9e2e40fd4a9d2f7c4b6ef974babd482a59743694/fastjsonschema-2.21.2-py3-none-any.whl", hash = "sha256:1c797122d0a86c5cace2e54bf4e819c36223b552017172f32c5c024a6b77e463", size = 24024, upload-time = "2025-08-14T18:49:34.776Z" }, +] + +[[package]] +name = "fonttools" +version = "4.63.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/84/69/c97f2c18e0db87d2c7b15da1974dace76ae938f1cfa22e2727a648b7ed43/fonttools-4.63.0.tar.gz", hash = "sha256:caeb583deeb5168e694b65cda8b4ee62abedfa66cf88488734466f2366b9c4e0", size = 3597189, upload-time = "2026-05-14T12:04:30.958Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/27/d2/23d25e3f247b328be58d04a4c9f894178a0d1eda7d42867cfb388adaf416/fonttools-4.63.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:fd1e3094f42d806d3d7c79162fc59e5910fcbe3a7360c385b8da969bc4493745", size = 2875338, upload-time = "2026-05-14T12:03:50.052Z" }, + { url = "https://files.pythonhosted.org/packages/cd/58/7dfa0c761cb3b2964e2a84c4dc986c926a87de0cb9fb60d5b28ded3f2914/fonttools-4.63.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:6e528da43bc3791085f8cb6141b1d13e459226790240340fcbb4625649238b03", size = 2422661, upload-time = "2026-05-14T12:03:52.154Z" }, + { url = "https://files.pythonhosted.org/packages/dd/87/64cfa18a7a1621d17b7f4502b2b0ed8a135a90c3db51ea590ee99043e76b/fonttools-4.63.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b2248c5decb223562f7902ff6325077a073f608ee8e33e88ad88db734eb9f49", size = 5010526, upload-time = "2026-05-14T12:03:54.647Z" }, + { url = "https://files.pythonhosted.org/packages/36/e1/a8933a72c45a87177fbde2696e0d0755c8c9062f8c077a961c6215fa27b1/fonttools-4.63.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:308f957cdeaf8abe4e5f2f124902ef405448af92c90f80e302a3b771c2e6116b", size = 4923946, upload-time = "2026-05-14T12:03:56.984Z" }, + { url = "https://files.pythonhosted.org/packages/27/60/872e6e233b8c5e8b41413796ff18b7fe479661bd40147e071b450dfad7a1/fonttools-4.63.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:bf00f21eb5fb721dbaf73d1e9da6d02a1af7768f2ebcf9798be98beab8ba90f6", size = 4962489, upload-time = "2026-05-14T12:03:59.443Z" }, + { url = "https://files.pythonhosted.org/packages/30/c4/83c24f2ec38b90cfda84bf4b1a1f49df80e84a1db4e7ac6e0d41bf23bc39/fonttools-4.63.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c1aaa4b9c75798400ac043ce04d74e7830376c85095a5a6ed7cba2f17a266bf4", size = 5071870, upload-time = "2026-05-14T12:04:02.122Z" }, + { url = "https://files.pythonhosted.org/packages/de/40/3ae22b60ff1d41ce0bd044b31238cdc72cef99f28b976f1e128ebd618c9b/fonttools-4.63.0-cp314-cp314-win32.whl", hash = "sha256:22693918177bd9ceabec4736d338045f357769416fc6b0b2508eefef75b08616", size = 2295026, upload-time = "2026-05-14T12:04:04.47Z" }, + { url = "https://files.pythonhosted.org/packages/c3/d4/98078064ccc76b45cb0f6c002452011e93c4bd26f6850344f0951cc1fe89/fonttools-4.63.0-cp314-cp314-win_amd64.whl", hash = "sha256:7d782fac32985914c351556f68ac0855391572bcd87de50e05970d3cd4c96fc5", size = 2347454, upload-time = "2026-05-14T12:04:06.752Z" }, + { url = "https://files.pythonhosted.org/packages/49/4e/652d1580c5f4e39f7d103b0c793e4773129ad633dce4addd0cf4dfebde02/fonttools-4.63.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:6db5140a60a5d731d21ec076745b40a310607731b0a565b50776393188649001", size = 2958152, upload-time = "2026-05-14T12:04:08.706Z" }, + { url = "https://files.pythonhosted.org/packages/0e/55/ad864c9a9b219f552eb46b32cd7906c466e5a578ba0c3abfcc0fe7413eb6/fonttools-4.63.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:7d76edbff9014094dbf03bd2d074709dfa6ec7aba13d838c937a2b33d2d6a86e", size = 2460809, upload-time = "2026-05-14T12:04:10.783Z" }, + { url = "https://files.pythonhosted.org/packages/ea/2b/0aa8db70f18cf52e49b4ed5ecec68547f981160bf5ded3b5aed6faa0a6f9/fonttools-4.63.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0eac00b9118c3c2f87d272e45341871c5b3066baa3c86897fa634a7c3fb59096", size = 5148649, upload-time = "2026-05-14T12:04:12.747Z" }, + { url = "https://files.pythonhosted.org/packages/7f/63/18e4369c25043096f1048e0c9915951adc4f842bd81c6b18155824d6fa99/fonttools-4.63.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:51394295f1a51de8b5f30bdb1e1b9a4231536c7064ef5c6e211eec19fa36036f", size = 4932147, upload-time = "2026-05-14T12:04:14.806Z" }, + { url = "https://files.pythonhosted.org/packages/a1/3f/67f3eac2ffd8a98446c5022f8ed3864eac878a5ff7af8df4c8286dba16cc/fonttools-4.63.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:9e12f105d2b6342c559c298afb674006bb2893afc7102dcf8a1b55b0486b4e40", size = 5027237, upload-time = "2026-05-14T12:04:17.675Z" }, + { url = "https://files.pythonhosted.org/packages/1a/ba/4e6214cb38a7b04779e97bb7636de9a5c7f20af7018d03dee0b64c08510a/fonttools-4.63.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:796f27556dbe094c4824f75ca85267e4df776c79036c8441469a4df37038c196", size = 5053933, upload-time = "2026-05-14T12:04:20.818Z" }, + { url = "https://files.pythonhosted.org/packages/34/3b/214dcc19ee31d3d38fb5ad2755c11ef0514e5dc300bbaf41c0b69f393799/fonttools-4.63.0-cp314-cp314t-win32.whl", hash = "sha256:948428a275741f0b64b113c955425a953314f4b9ab9997f73a72c83e68e569c8", size = 2359326, upload-time = "2026-05-14T12:04:24.22Z" }, + { url = "https://files.pythonhosted.org/packages/dd/1e/3ff1a9b523058c2eeb6a9d50f5574e2a738200d0d94107d5bc4105e8da3f/fonttools-4.63.0-cp314-cp314t-win_amd64.whl", hash = "sha256:6d4741eb179121cab9eea4cb2393d24492373a260d7945006358c08cfbf45419", size = 2425829, upload-time = "2026-05-14T12:04:26.829Z" }, + { url = "https://files.pythonhosted.org/packages/2c/47/c99d5268f354002ce80f8d029cd9d7d872969da1de8b93d32de4dc56d6f4/fonttools-4.63.0-py3-none-any.whl", hash = "sha256:445af2eab030a16b9171ea8bdda7ebf7d96bda2df88ee182a464252f6e05e20d", size = 1164562, upload-time = "2026-05-14T12:04:29.092Z" }, +] + +[[package]] +name = "fqdn" +version = "1.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/30/3e/a80a8c077fd798951169626cde3e239adeba7dab75deb3555716415bd9b0/fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f", size = 6015, upload-time = "2021-03-11T07:16:29.08Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cf/58/8acf1b3e91c58313ce5cb67df61001fc9dcd21be4fadb76c1a2d540e09ed/fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014", size = 9121, upload-time = "2021-03-11T07:16:28.351Z" }, +] + +[[package]] +name = "h11" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, +] + +[[package]] +name = "httpcore" +version = "1.0.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload-time = "2025-04-24T22:06:22.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" }, +] + +[[package]] +name = "httpx" +version = "0.28.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "certifi" }, + { name = "httpcore" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload-time = "2024-12-06T15:37:23.222Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, +] + +[[package]] +name = "idna" +version = "3.16" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1a/88/bcf9709822fe69d02c2a6a77956c98ce6ea8ca8767a9aadcedc7eb6a2390/idna-3.16.tar.gz", hash = "sha256:d7a6da03db833450fca25d2358ac9ff06cd624577a4aea3a596d5c0f77b8e03d", size = 203770, upload-time = "2026-05-22T00:16:18.781Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/16/70255075a9859a0e3adb789b68ceb0e210dec03934245fd98d248226572f/idna-3.16-py3-none-any.whl", hash = "sha256:cc246e3a3f89580c3a951b5ad298ca4638078b2cdd4f115654332b5c26daded5", size = 74165, upload-time = "2026-05-22T00:16:16.698Z" }, +] + +[[package]] +name = "ipykernel" +version = "7.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "appnope", marker = "sys_platform == 'darwin'" }, + { name = "comm" }, + { name = "debugpy" }, + { name = "ipython" }, + { name = "jupyter-client" }, + { name = "jupyter-core" }, + { name = "matplotlib-inline" }, + { name = "nest-asyncio" }, + { name = "packaging" }, + { name = "psutil" }, + { name = "pyzmq" }, + { name = "tornado" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ca/8d/b68b728e2d06b9e0051019640a40a9eb7a88fcd82c2e1b5ce70bef5ff044/ipykernel-7.2.0.tar.gz", hash = "sha256:18ed160b6dee2cbb16e5f3575858bc19d8f1fe6046a9a680c708494ce31d909e", size = 176046, upload-time = "2026-02-06T16:43:27.403Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/82/b9/e73d5d9f405cba7706c539aa8b311b49d4c2f3d698d9c12f815231169c71/ipykernel-7.2.0-py3-none-any.whl", hash = "sha256:3bbd4420d2b3cc105cbdf3756bfc04500b1e52f090a90716851f3916c62e1661", size = 118788, upload-time = "2026-02-06T16:43:25.149Z" }, +] + +[[package]] +name = "ipython" +version = "9.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "decorator" }, + { name = "ipython-pygments-lexers" }, + { name = "jedi" }, + { name = "matplotlib-inline" }, + { name = "pexpect", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, + { name = "prompt-toolkit" }, + { name = "psutil" }, + { name = "pygments" }, + { name = "stack-data" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cd/c4/87cda5842cf5c31837c06ddb588e11c3c35d8ece89b7a0108c06b8c9b00a/ipython-9.13.0.tar.gz", hash = "sha256:7e834b6afc99f020e3f05966ced34792f40267d64cb1ea9043886dab0dde5967", size = 4430549, upload-time = "2026-04-24T12:24:55.221Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b9/86/3060e8029b7cc505cce9a0137431dda81d0a3fde93a8f0f50ee0bf37a795/ipython-9.13.0-py3-none-any.whl", hash = "sha256:57f9d4639e20818d328d287c7b549af3d05f12486ea8f2e7f73e52a36ec4d201", size = 627274, upload-time = "2026-04-24T12:24:53.038Z" }, +] + +[[package]] +name = "ipython-pygments-lexers" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ef/4c/5dd1d8af08107f88c7f741ead7a40854b8ac24ddf9ae850afbcf698aa552/ipython_pygments_lexers-1.1.1.tar.gz", hash = "sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81", size = 8393, upload-time = "2025-01-17T11:24:34.505Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/33/1f075bf72b0b747cb3288d011319aaf64083cf2efef8354174e3ed4540e2/ipython_pygments_lexers-1.1.1-py3-none-any.whl", hash = "sha256:a9462224a505ade19a605f71f8fa63c2048833ce50abc86768a0d81d876dc81c", size = 8074, upload-time = "2025-01-17T11:24:33.271Z" }, +] + +[[package]] +name = "ipywidgets" +version = "8.1.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "comm" }, + { name = "ipython" }, + { name = "jupyterlab-widgets" }, + { name = "traitlets" }, + { name = "widgetsnbextension" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4c/ae/c5ce1edc1afe042eadb445e95b0671b03cee61895264357956e61c0d2ac0/ipywidgets-8.1.8.tar.gz", hash = "sha256:61f969306b95f85fba6b6986b7fe45d73124d1d9e3023a8068710d47a22ea668", size = 116739, upload-time = "2025-11-01T21:18:12.393Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/56/6d/0d9848617b9f753b87f214f1c682592f7ca42de085f564352f10f0843026/ipywidgets-8.1.8-py3-none-any.whl", hash = "sha256:ecaca67aed704a338f88f67b1181b58f821ab5dc89c1f0f5ef99db43c1c2921e", size = 139808, upload-time = "2025-11-01T21:18:10.956Z" }, +] + +[[package]] +name = "isoduration" +version = "20.11.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "arrow" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7c/1a/3c8edc664e06e6bd06cce40c6b22da5f1429aa4224d0c590f3be21c91ead/isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9", size = 11649, upload-time = "2020-11-01T11:00:00.312Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/55/e5326141505c5d5e34c5e0935d2908a74e4561eca44108fbfb9c13d2911a/isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042", size = 11321, upload-time = "2020-11-01T10:59:58.02Z" }, +] + +[[package]] +name = "jedi" +version = "0.20.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "parso" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/46/b7/a3635f6a2d7cf5b5dd98064fc1d5fbbafcb25477bcea204a3a92145d158b/jedi-0.20.0.tar.gz", hash = "sha256:c3f4ccbd276696f4b19c54618d4fb18f9fc24b0aef02acf704b23f487daa1011", size = 3119416, upload-time = "2026-05-01T23:38:47.814Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/93/242e2eab5fe682ffcb8b0084bde703a41d51e17ee0f3a31ff0d9d813620a/jedi-0.20.0-py2.py3-none-any.whl", hash = "sha256:7bdd9c2634f56713299976f4cbd59cb3fa92165cc5e05ea811fb253480728b67", size = 4884812, upload-time = "2026-05-01T23:38:43.919Z" }, +] + +[[package]] +name = "jinja2" +version = "3.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, +] + +[[package]] +name = "json5" +version = "0.14.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9c/4b/6f8906aaf67d501e259b0adab4d312945bb7211e8b8d4dcc77c92320edaa/json5-0.14.0.tar.gz", hash = "sha256:b3f492fad9f6cdbced8b7d40b28b9b1c9701c5f561bef0d33b81c2ff433fefcb", size = 52656, upload-time = "2026-03-27T22:50:48.108Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b8/42/cf027b4ac873b076189d935b135397675dac80cb29acb13e1ab86ad6c631/json5-0.14.0-py3-none-any.whl", hash = "sha256:56cf861bab076b1178eb8c92e1311d273a9b9acea2ccc82c276abf839ebaef3a", size = 36271, upload-time = "2026-03-27T22:50:47.073Z" }, +] + +[[package]] +name = "jsonpointer" +version = "3.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/18/c7/af399a2e7a67fd18d63c40c5e62d3af4e67b836a2107468b6a5ea24c4304/jsonpointer-3.1.1.tar.gz", hash = "sha256:0b801c7db33a904024f6004d526dcc53bbb8a4a0f4e32bfd10beadf60adf1900", size = 9068, upload-time = "2026-03-23T22:32:32.458Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/6a/a83720e953b1682d2d109d3c2dbb0bc9bf28cc1cbc205be4ef4be5da709d/jsonpointer-3.1.1-py3-none-any.whl", hash = "sha256:8ff8b95779d071ba472cf5bc913028df06031797532f08a7d5b602d8b2a488ca", size = 7659, upload-time = "2026-03-23T22:32:31.568Z" }, +] + +[[package]] +name = "jsonschema" +version = "4.26.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "jsonschema-specifications" }, + { name = "referencing" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b3/fc/e067678238fa451312d4c62bf6e6cf5ec56375422aee02f9cb5f909b3047/jsonschema-4.26.0.tar.gz", hash = "sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326", size = 366583, upload-time = "2026-01-07T13:41:07.246Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl", hash = "sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce", size = 90630, upload-time = "2026-01-07T13:41:05.306Z" }, +] + +[package.optional-dependencies] +format-nongpl = [ + { name = "fqdn" }, + { name = "idna" }, + { name = "isoduration" }, + { name = "jsonpointer" }, + { name = "rfc3339-validator" }, + { name = "rfc3986-validator" }, + { name = "rfc3987-syntax" }, + { name = "uri-template" }, + { name = "webcolors" }, +] + +[[package]] +name = "jsonschema-specifications" +version = "2025.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "referencing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855, upload-time = "2025-09-08T01:34:59.186Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" }, +] + +[[package]] +name = "jupyter" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ipykernel" }, + { name = "ipywidgets" }, + { name = "jupyter-console" }, + { name = "jupyterlab" }, + { name = "nbconvert" }, + { name = "notebook" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/58/f3/af28ea964ab8bc1e472dba2e82627d36d470c51f5cd38c37502eeffaa25e/jupyter-1.1.1.tar.gz", hash = "sha256:d55467bceabdea49d7e3624af7e33d59c37fff53ed3a350e1ac957bed731de7a", size = 5714959, upload-time = "2024-08-30T07:15:48.299Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/38/64/285f20a31679bf547b75602702f7800e74dbabae36ef324f716c02804753/jupyter-1.1.1-py2.py3-none-any.whl", hash = "sha256:7a59533c22af65439b24bbe60373a4e95af8f16ac65a6c00820ad378e3f7cc83", size = 2657, upload-time = "2024-08-30T07:15:47.045Z" }, +] + +[[package]] +name = "jupyter-client" +version = "8.8.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-core" }, + { name = "python-dateutil" }, + { name = "pyzmq" }, + { name = "tornado" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/05/e4/ba649102a3bc3fbca54e7239fb924fd434c766f855693d86de0b1f2bec81/jupyter_client-8.8.0.tar.gz", hash = "sha256:d556811419a4f2d96c869af34e854e3f059b7cc2d6d01a9cd9c85c267691be3e", size = 348020, upload-time = "2026-01-08T13:55:47.938Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2d/0b/ceb7694d864abc0a047649aec263878acb9f792e1fec3e676f22dc9015e3/jupyter_client-8.8.0-py3-none-any.whl", hash = "sha256:f93a5b99c5e23a507b773d3a1136bd6e16c67883ccdbd9a829b0bbdb98cd7d7a", size = 107371, upload-time = "2026-01-08T13:55:45.562Z" }, +] + +[[package]] +name = "jupyter-console" +version = "6.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ipykernel" }, + { name = "ipython" }, + { name = "jupyter-client" }, + { name = "jupyter-core" }, + { name = "prompt-toolkit" }, + { name = "pygments" }, + { name = "pyzmq" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/2d/e2fd31e2fc41c14e2bcb6c976ab732597e907523f6b2420305f9fc7fdbdb/jupyter_console-6.6.3.tar.gz", hash = "sha256:566a4bf31c87adbfadf22cdf846e3069b59a71ed5da71d6ba4d8aaad14a53539", size = 34363, upload-time = "2023-03-06T14:13:31.02Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ca/77/71d78d58f15c22db16328a476426f7ac4a60d3a5a7ba3b9627ee2f7903d4/jupyter_console-6.6.3-py3-none-any.whl", hash = "sha256:309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485", size = 24510, upload-time = "2023-03-06T14:13:28.229Z" }, +] + +[[package]] +name = "jupyter-core" +version = "5.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "platformdirs" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/02/49/9d1284d0dc65e2c757b74c6687b6d319b02f822ad039e5c512df9194d9dd/jupyter_core-5.9.1.tar.gz", hash = "sha256:4d09aaff303b9566c3ce657f580bd089ff5c91f5f89cf7d8846c3cdf465b5508", size = 89814, upload-time = "2025-10-16T19:19:18.444Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/e7/80988e32bf6f73919a113473a604f5a8f09094de312b9d52b79c2df7612b/jupyter_core-5.9.1-py3-none-any.whl", hash = "sha256:ebf87fdc6073d142e114c72c9e29a9d7ca03fad818c5d300ce2adc1fb0743407", size = 29032, upload-time = "2025-10-16T19:19:16.783Z" }, +] + +[[package]] +name = "jupyter-events" +version = "0.12.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jsonschema", extra = ["format-nongpl"] }, + { name = "packaging" }, + { name = "python-json-logger" }, + { name = "pyyaml" }, + { name = "referencing" }, + { name = "rfc3339-validator" }, + { name = "rfc3986-validator" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/18/f8/475c4241b2b75af0deaae453ed003c6c851766dbc44d332d8baf245dc931/jupyter_events-0.12.1.tar.gz", hash = "sha256:faff25f77218335752f35f23c5fe6e4a392a7bd99a5939ccb9b8fbf594636cf3", size = 62854, upload-time = "2026-04-20T23:17:50.66Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/eb/6c/6fcde0c8f616ed360ffd3587f7db9e225a7e62b583a04494d2f069cf64ea/jupyter_events-0.12.1-py3-none-any.whl", hash = "sha256:c366585253f537a627da52fa7ca7410c5b5301fe893f511e7b077c2d93ec8bcf", size = 19512, upload-time = "2026-04-20T23:17:48.927Z" }, +] + +[[package]] +name = "jupyter-lsp" +version = "2.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-server" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/36/ff/1e4a61f5170a9a1d978f3ac3872449de6c01fc71eaf89657824c878b1549/jupyter_lsp-2.3.1.tar.gz", hash = "sha256:fdf8a4aa7d85813976d6e29e95e6a2c8f752701f926f2715305249a3829805a6", size = 55677, upload-time = "2026-04-02T08:10:06.749Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/23/e8/9d61dcbd1dce8ef418f06befd4ac084b4720429c26b0b1222bc218685eff/jupyter_lsp-2.3.1-py3-none-any.whl", hash = "sha256:71b954d834e85ff3096400554f2eefaf7fe37053036f9a782b0f7c5e42dadb81", size = 77513, upload-time = "2026-04-02T08:10:01.753Z" }, +] + +[[package]] +name = "jupyter-server" +version = "2.18.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "argon2-cffi" }, + { name = "jinja2" }, + { name = "jupyter-client" }, + { name = "jupyter-core" }, + { name = "jupyter-events" }, + { name = "jupyter-server-terminals" }, + { name = "nbconvert" }, + { name = "nbformat" }, + { name = "packaging" }, + { name = "prometheus-client" }, + { name = "pywinpty", marker = "os_name == 'nt'" }, + { name = "pyzmq" }, + { name = "send2trash" }, + { name = "terminado" }, + { name = "tornado" }, + { name = "traitlets" }, + { name = "websocket-client" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ca/15/1eacb0fcb79ef86e8a0a79a708e6ad7435f6f223097dd29a4ce861fabc44/jupyter_server-2.18.2.tar.gz", hash = "sha256:06b4f40d8a7a00bb39d5216859c81374a0e7cfefe6d8a5a7facc5a5c37c679a7", size = 753177, upload-time = "2026-05-06T07:04:36.274Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e2/50/ecf4f70d65bdb7519b28a33d1b2fee8a4b4ba1ae1a92f15d97e877c5de21/jupyter_server-2.18.2-py3-none-any.whl", hash = "sha256:fa5e46539ded65791838035a2b6001f13e54d5f64b8b3752eb1e91fdd641a5b8", size = 391907, upload-time = "2026-05-06T07:04:34.014Z" }, +] + +[[package]] +name = "jupyter-server-terminals" +version = "0.5.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pywinpty", marker = "os_name == 'nt'" }, + { name = "terminado" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f4/a7/bcd0a9b0cbba88986fe944aaaf91bfda603e5a50bda8ed15123f381a3b2f/jupyter_server_terminals-0.5.4.tar.gz", hash = "sha256:bbda128ed41d0be9020349f9f1f2a4ab9952a73ed5f5ac9f1419794761fb87f5", size = 31770, upload-time = "2026-01-14T16:53:20.213Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/2d/6674563f71c6320841fc300911a55143925112a72a883e2ca71fba4c618d/jupyter_server_terminals-0.5.4-py3-none-any.whl", hash = "sha256:55be353fc74a80bc7f3b20e6be50a55a61cd525626f578dcb66a5708e2007d14", size = 13704, upload-time = "2026-01-14T16:53:18.738Z" }, +] + +[[package]] +name = "jupyterlab" +version = "4.5.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "async-lru" }, + { name = "httpx" }, + { name = "ipykernel" }, + { name = "jinja2" }, + { name = "jupyter-core" }, + { name = "jupyter-lsp" }, + { name = "jupyter-server" }, + { name = "jupyterlab-server" }, + { name = "notebook-shim" }, + { name = "packaging" }, + { name = "setuptools" }, + { name = "tornado" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2b/22/8440ec827762146e7cdecf04335bd348795899d29dc6ae82238707353a2c/jupyterlab-4.5.7.tar.gz", hash = "sha256:55a9822c4754da305f41e113452c68383e214dcf96de760146af89ce5d5117b0", size = 23992763, upload-time = "2026-04-29T16:43:51.328Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3d/aa/537b8f7d80e799af19af35fb3ddfc970b951088a13c57dd9387dcfbb7f61/jupyterlab-4.5.7-py3-none-any.whl", hash = "sha256:fba4cb0e2c44a52859669d8c98b45de029d5e515f8407bf8534d2a8fc5f0964d", size = 12450123, upload-time = "2026-04-29T16:43:46.639Z" }, +] + +[[package]] +name = "jupyterlab-pygments" +version = "0.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/90/51/9187be60d989df97f5f0aba133fa54e7300f17616e065d1ada7d7646b6d6/jupyterlab_pygments-0.3.0.tar.gz", hash = "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d", size = 512900, upload-time = "2023-11-23T09:26:37.44Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b1/dd/ead9d8ea85bf202d90cc513b533f9c363121c7792674f78e0d8a854b63b4/jupyterlab_pygments-0.3.0-py3-none-any.whl", hash = "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780", size = 15884, upload-time = "2023-11-23T09:26:34.325Z" }, +] + +[[package]] +name = "jupyterlab-server" +version = "2.28.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "babel" }, + { name = "jinja2" }, + { name = "json5" }, + { name = "jsonschema" }, + { name = "jupyter-server" }, + { name = "packaging" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d6/2c/90153f189e421e93c4bb4f9e3f59802a1f01abd2ac5cf40b152d7f735232/jupyterlab_server-2.28.0.tar.gz", hash = "sha256:35baa81898b15f93573e2deca50d11ac0ae407ebb688299d3a5213265033712c", size = 76996, upload-time = "2025-10-22T13:59:18.37Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/07/a000fe835f76b7e1143242ab1122e6362ef1c03f23f83a045c38859c2ae0/jupyterlab_server-2.28.0-py3-none-any.whl", hash = "sha256:e4355b148fdcf34d312bbbc80f22467d6d20460e8b8736bf235577dd18506968", size = 59830, upload-time = "2025-10-22T13:59:16.767Z" }, +] + +[[package]] +name = "jupyterlab-widgets" +version = "3.0.16" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/26/2d/ef58fed122b268c69c0aa099da20bc67657cdfb2e222688d5731bd5b971d/jupyterlab_widgets-3.0.16.tar.gz", hash = "sha256:423da05071d55cf27a9e602216d35a3a65a3e41cdf9c5d3b643b814ce38c19e0", size = 897423, upload-time = "2025-11-01T21:11:29.724Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ab/b5/36c712098e6191d1b4e349304ef73a8d06aed77e56ceaac8c0a306c7bda1/jupyterlab_widgets-3.0.16-py3-none-any.whl", hash = "sha256:45fa36d9c6422cf2559198e4db481aa243c7a32d9926b500781c830c80f7ecf8", size = 914926, upload-time = "2025-11-01T21:11:28.008Z" }, +] + +[[package]] +name = "kiwisolver" +version = "1.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/67/9c61eccb13f0bdca9307614e782fec49ffdde0f7a2314935d489fa93cd9c/kiwisolver-1.5.0.tar.gz", hash = "sha256:d4193f3d9dc3f6f79aaed0e5637f45d98850ebf01f7ca20e69457f3e8946b66a", size = 103482, upload-time = "2026-03-09T13:15:53.382Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e4/d7/060f45052f2a01ad5762c8fdecd6d7a752b43400dc29ff75cd47225a40fd/kiwisolver-1.5.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8df31fe574b8b3993cc61764f40941111b25c2d9fea13d3ce24a49907cd2d615", size = 123231, upload-time = "2026-03-09T13:14:41.323Z" }, + { url = "https://files.pythonhosted.org/packages/c2/a7/78da680eadd06ff35edef6ef68a1ad273bad3e2a0936c9a885103230aece/kiwisolver-1.5.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:1d49a49ac4cbfb7c1375301cd1ec90169dfeae55ff84710d782260ce77a75a02", size = 66489, upload-time = "2026-03-09T13:14:42.534Z" }, + { url = "https://files.pythonhosted.org/packages/49/b2/97980f3ad4fae37dd7fe31626e2bf75fbf8bdf5d303950ec1fab39a12da8/kiwisolver-1.5.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0cbe94b69b819209a62cb27bdfa5dc2a8977d8de2f89dfd97ba4f53ed3af754e", size = 64063, upload-time = "2026-03-09T13:14:44.759Z" }, + { url = "https://files.pythonhosted.org/packages/e7/f9/b06c934a6aa8bc91f566bd2a214fd04c30506c2d9e2b6b171953216a65b6/kiwisolver-1.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:80aa065ffd378ff784822a6d7c3212f2d5f5e9c3589614b5c228b311fd3063ac", size = 1475913, upload-time = "2026-03-09T13:14:46.247Z" }, + { url = "https://files.pythonhosted.org/packages/6b/f0/f768ae564a710135630672981231320bc403cf9152b5596ec5289de0f106/kiwisolver-1.5.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e7f886f47ab881692f278ae901039a234e4025a68e6dfab514263a0b1c4ae05", size = 1282782, upload-time = "2026-03-09T13:14:48.458Z" }, + { url = "https://files.pythonhosted.org/packages/e2/9f/1de7aad00697325f05238a5f2eafbd487fb637cc27a558b5367a5f37fb7f/kiwisolver-1.5.0-cp314-cp314-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5060731cc3ed12ca3a8b57acd4aeca5bbc2f49216dd0bec1650a1acd89486bcd", size = 1300815, upload-time = "2026-03-09T13:14:50.721Z" }, + { url = "https://files.pythonhosted.org/packages/5a/c2/297f25141d2e468e0ce7f7a7b92e0cf8918143a0cbd3422c1ad627e85a06/kiwisolver-1.5.0-cp314-cp314-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7a4aa69609f40fce3cbc3f87b2061f042eee32f94b8f11db707b66a26461591a", size = 1347925, upload-time = "2026-03-09T13:14:52.304Z" }, + { url = "https://files.pythonhosted.org/packages/b9/d3/f4c73a02eb41520c47610207b21afa8cdd18fdbf64ffd94674ae21c4812d/kiwisolver-1.5.0-cp314-cp314-manylinux_2_39_riscv64.whl", hash = "sha256:d168fda2dbff7b9b5f38e693182d792a938c31db4dac3a80a4888de603c99554", size = 991322, upload-time = "2026-03-09T13:14:54.637Z" }, + { url = "https://files.pythonhosted.org/packages/7b/46/d3f2efef7732fcda98d22bf4ad5d3d71d545167a852ca710a494f4c15343/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:413b820229730d358efd838ecbab79902fe97094565fdc80ddb6b0a18c18a581", size = 2232857, upload-time = "2026-03-09T13:14:56.471Z" }, + { url = "https://files.pythonhosted.org/packages/3f/ec/2d9756bf2b6d26ae4349b8d3662fb3993f16d80c1f971c179ce862b9dbae/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:5124d1ea754509b09e53738ec185584cc609aae4a3b510aaf4ed6aa047ef9303", size = 2329376, upload-time = "2026-03-09T13:14:58.072Z" }, + { url = "https://files.pythonhosted.org/packages/8f/9f/876a0a0f2260f1bde92e002b3019a5fabc35e0939c7d945e0fa66185eb20/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:e4415a8db000bf49a6dd1c478bf70062eaacff0f462b92b0ba68791a905861f9", size = 1982549, upload-time = "2026-03-09T13:14:59.668Z" }, + { url = "https://files.pythonhosted.org/packages/6c/4f/ba3624dfac23a64d54ac4179832860cb537c1b0af06024936e82ca4154a0/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:d618fd27420381a4f6044faa71f46d8bfd911bd077c555f7138ed88729bfbe79", size = 2494680, upload-time = "2026-03-09T13:15:01.364Z" }, + { url = "https://files.pythonhosted.org/packages/39/b7/97716b190ab98911b20d10bf92eca469121ec483b8ce0edd314f51bc85af/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5092eb5b1172947f57d6ea7d89b2f29650414e4293c47707eb499ec07a0ac796", size = 2297905, upload-time = "2026-03-09T13:15:03.925Z" }, + { url = "https://files.pythonhosted.org/packages/a3/36/4e551e8aa55c9188bca9abb5096805edbf7431072b76e2298e34fd3a3008/kiwisolver-1.5.0-cp314-cp314-win_amd64.whl", hash = "sha256:d76e2d8c75051d58177e762164d2e9ab92886534e3a12e795f103524f221dd8e", size = 75086, upload-time = "2026-03-09T13:15:07.775Z" }, + { url = "https://files.pythonhosted.org/packages/70/15/9b90f7df0e31a003c71649cf66ef61c3c1b862f48c81007fa2383c8bd8d7/kiwisolver-1.5.0-cp314-cp314-win_arm64.whl", hash = "sha256:fa6248cd194edff41d7ea9425ced8ca3a6f838bfb295f6f1d6e6bb694a8518df", size = 66577, upload-time = "2026-03-09T13:15:09.139Z" }, + { url = "https://files.pythonhosted.org/packages/17/01/7dc8c5443ff42b38e72731643ed7cf1ed9bf01691ae5cdca98501999ed83/kiwisolver-1.5.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:d1ffeb80b5676463d7a7d56acbe8e37a20ce725570e09549fe738e02ca6b7e1e", size = 125794, upload-time = "2026-03-09T13:15:10.525Z" }, + { url = "https://files.pythonhosted.org/packages/46/8a/b4ebe46ebaac6a303417fab10c2e165c557ddaff558f9699d302b256bc53/kiwisolver-1.5.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:bc4d8e252f532ab46a1de9349e2d27b91fce46736a9eedaa37beaca66f574ed4", size = 67646, upload-time = "2026-03-09T13:15:12.016Z" }, + { url = "https://files.pythonhosted.org/packages/60/35/10a844afc5f19d6f567359bf4789e26661755a2f36200d5d1ed8ad0126e5/kiwisolver-1.5.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6783e069732715ad0c3ce96dbf21dbc2235ab0593f2baf6338101f70371f4028", size = 65511, upload-time = "2026-03-09T13:15:13.311Z" }, + { url = "https://files.pythonhosted.org/packages/f8/8a/685b297052dd041dcebce8e8787b58923b6e78acc6115a0dc9189011c44b/kiwisolver-1.5.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e7c4c09a490dc4d4a7f8cbee56c606a320f9dc28cf92a7157a39d1ce7676a657", size = 1584858, upload-time = "2026-03-09T13:15:15.103Z" }, + { url = "https://files.pythonhosted.org/packages/9e/80/04865e3d4638ac5bddec28908916df4a3075b8c6cc101786a96803188b96/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2a075bd7bd19c70cf67c8badfa36cf7c5d8de3c9ddb8420c51e10d9c50e94920", size = 1392539, upload-time = "2026-03-09T13:15:16.661Z" }, + { url = "https://files.pythonhosted.org/packages/ba/01/77a19cacc0893fa13fafa46d1bba06fb4dc2360b3292baf4b56d8e067b24/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bdd3e53429ff02aa319ba59dfe4ceeec345bf46cf180ec2cf6fd5b942e7975e9", size = 1405310, upload-time = "2026-03-09T13:15:18.229Z" }, + { url = "https://files.pythonhosted.org/packages/53/39/bcaf5d0cca50e604cfa9b4e3ae1d64b50ca1ae5b754122396084599ef903/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cdcb35dc9d807259c981a85531048ede628eabcffb3239adf3d17463518992d", size = 1456244, upload-time = "2026-03-09T13:15:20.444Z" }, + { url = "https://files.pythonhosted.org/packages/d0/7a/72c187abc6975f6978c3e39b7cf67aeb8b3c0a8f9790aa7fd412855e9e1f/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_39_riscv64.whl", hash = "sha256:70d593af6a6ca332d1df73d519fddb5148edb15cd90d5f0155e3746a6d4fcc65", size = 1073154, upload-time = "2026-03-09T13:15:22.039Z" }, + { url = "https://files.pythonhosted.org/packages/c7/ca/cf5b25783ebbd59143b4371ed0c8428a278abe68d6d0104b01865b1bbd0f/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:377815a8616074cabbf3f53354e1d040c35815a134e01d7614b7692e4bf8acfa", size = 2334377, upload-time = "2026-03-09T13:15:23.741Z" }, + { url = "https://files.pythonhosted.org/packages/4a/e5/b1f492adc516796e88751282276745340e2a72dcd0d36cf7173e0daf3210/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:0255a027391d52944eae1dbb5d4cc5903f57092f3674e8e544cdd2622826b3f0", size = 2425288, upload-time = "2026-03-09T13:15:25.789Z" }, + { url = "https://files.pythonhosted.org/packages/e6/e5/9b21fbe91a61b8f409d74a26498706e97a48008bfcd1864373d32a6ba31c/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:012b1eb16e28718fa782b5e61dc6f2da1f0792ca73bd05d54de6cb9561665fc9", size = 2063158, upload-time = "2026-03-09T13:15:27.63Z" }, + { url = "https://files.pythonhosted.org/packages/b1/02/83f47986138310f95ea95531f851b2a62227c11cbc3e690ae1374fe49f0f/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:0e3aafb33aed7479377e5e9a82e9d4bf87063741fc99fc7ae48b0f16e32bdd6f", size = 2597260, upload-time = "2026-03-09T13:15:29.421Z" }, + { url = "https://files.pythonhosted.org/packages/07/18/43a5f24608d8c313dd189cf838c8e68d75b115567c6279de7796197cfb6a/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e7a116ae737f0000343218c4edf5bd45893bfeaff0993c0b215d7124c9f77646", size = 2394403, upload-time = "2026-03-09T13:15:31.517Z" }, + { url = "https://files.pythonhosted.org/packages/3b/b5/98222136d839b8afabcaa943b09bd05888c2d36355b7e448550211d1fca4/kiwisolver-1.5.0-cp314-cp314t-win_amd64.whl", hash = "sha256:1dd9b0b119a350976a6d781e7278ec7aca0b201e1a9e2d23d9804afecb6ca681", size = 79687, upload-time = "2026-03-09T13:15:33.204Z" }, + { url = "https://files.pythonhosted.org/packages/99/a2/ca7dc962848040befed12732dff6acae7fb3c4f6fc4272b3f6c9a30b8713/kiwisolver-1.5.0-cp314-cp314t-win_arm64.whl", hash = "sha256:58f812017cd2985c21fbffb4864d59174d4903dd66fa23815e74bbc7a0e2dd57", size = 70032, upload-time = "2026-03-09T13:15:34.411Z" }, +] + +[[package]] +name = "lark" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/da/34/28fff3ab31ccff1fd4f6c7c7b0ceb2b6968d8ea4950663eadcb5720591a0/lark-1.3.1.tar.gz", hash = "sha256:b426a7a6d6d53189d318f2b6236ab5d6429eaf09259f1ca33eb716eed10d2905", size = 382732, upload-time = "2025-10-27T18:25:56.653Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/82/3d/14ce75ef66813643812f3093ab17e46d3a206942ce7376d31ec2d36229e7/lark-1.3.1-py3-none-any.whl", hash = "sha256:c629b661023a014c37da873b4ff58a817398d12635d3bbb2c5a03be7fe5d1e12", size = 113151, upload-time = "2025-10-27T18:25:54.882Z" }, +] + +[[package]] +name = "markupsafe" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", size = 11619, upload-time = "2025-09-27T18:37:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", size = 12029, upload-time = "2025-09-27T18:37:07.213Z" }, + { url = "https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", size = 24408, upload-time = "2025-09-27T18:37:09.572Z" }, + { url = "https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", size = 23005, upload-time = "2025-09-27T18:37:10.58Z" }, + { url = "https://files.pythonhosted.org/packages/bc/20/b7fdf89a8456b099837cd1dc21974632a02a999ec9bf7ca3e490aacd98e7/markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", size = 22048, upload-time = "2025-09-27T18:37:11.547Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a7/591f592afdc734f47db08a75793a55d7fbcc6902a723ae4cfbab61010cc5/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", size = 23821, upload-time = "2025-09-27T18:37:12.48Z" }, + { url = "https://files.pythonhosted.org/packages/7d/33/45b24e4f44195b26521bc6f1a82197118f74df348556594bd2262bda1038/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", size = 21606, upload-time = "2025-09-27T18:37:13.485Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0e/53dfaca23a69fbfbbf17a4b64072090e70717344c52eaaaa9c5ddff1e5f0/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", size = 23043, upload-time = "2025-09-27T18:37:14.408Z" }, + { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747, upload-time = "2025-09-27T18:37:15.36Z" }, + { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341, upload-time = "2025-09-27T18:37:16.496Z" }, + { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073, upload-time = "2025-09-27T18:37:17.476Z" }, + { url = "https://files.pythonhosted.org/packages/3c/f0/57689aa4076e1b43b15fdfa646b04653969d50cf30c32a102762be2485da/markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", size = 11661, upload-time = "2025-09-27T18:37:18.453Z" }, + { url = "https://files.pythonhosted.org/packages/89/c3/2e67a7ca217c6912985ec766c6393b636fb0c2344443ff9d91404dc4c79f/markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", size = 12069, upload-time = "2025-09-27T18:37:19.332Z" }, + { url = "https://files.pythonhosted.org/packages/f0/00/be561dce4e6ca66b15276e184ce4b8aec61fe83662cce2f7d72bd3249d28/markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", size = 25670, upload-time = "2025-09-27T18:37:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/50/09/c419f6f5a92e5fadde27efd190eca90f05e1261b10dbd8cbcb39cd8ea1dc/markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50", size = 23598, upload-time = "2025-09-27T18:37:21.177Z" }, + { url = "https://files.pythonhosted.org/packages/22/44/a0681611106e0b2921b3033fc19bc53323e0b50bc70cffdd19f7d679bb66/markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", size = 23261, upload-time = "2025-09-27T18:37:22.167Z" }, + { url = "https://files.pythonhosted.org/packages/5f/57/1b0b3f100259dc9fffe780cfb60d4be71375510e435efec3d116b6436d43/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", size = 24835, upload-time = "2025-09-27T18:37:23.296Z" }, + { url = "https://files.pythonhosted.org/packages/26/6a/4bf6d0c97c4920f1597cc14dd720705eca0bf7c787aebc6bb4d1bead5388/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", size = 22733, upload-time = "2025-09-27T18:37:24.237Z" }, + { url = "https://files.pythonhosted.org/packages/14/c7/ca723101509b518797fedc2fdf79ba57f886b4aca8a7d31857ba3ee8281f/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", size = 23672, upload-time = "2025-09-27T18:37:25.271Z" }, + { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819, upload-time = "2025-09-27T18:37:26.285Z" }, + { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426, upload-time = "2025-09-27T18:37:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload-time = "2025-09-27T18:37:28.327Z" }, +] + +[[package]] +name = "matplotlib" +version = "3.10.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "contourpy" }, + { name = "cycler" }, + { name = "fonttools" }, + { name = "kiwisolver" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pillow" }, + { name = "pyparsing" }, + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/63/1b/4be5be87d43d327a0cf4de1a56e86f7f84c89312452406cf122efe2839e6/matplotlib-3.10.9.tar.gz", hash = "sha256:fd66508e8c6877d98e586654b608a0456db8d7e8a546eb1e2600efd957302358", size = 34811233, upload-time = "2026-04-24T00:14:13.539Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d6/e6/3bd8afd04949f02eabc1c17115ea5255e19cacd4d06fc5abdde4eeb0052c/matplotlib-3.10.9-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:172db52c9e683f5d12eaf57f0f54834190e12581fe1cc2a19595a8f5acb4e77d", size = 8321276, upload-time = "2026-04-24T00:13:18.318Z" }, + { url = "https://files.pythonhosted.org/packages/41/86/86231232fff41c9f8e4a1a7d7a597d349a02527109c3af7d618366122139/matplotlib-3.10.9-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:97e35e8d39ccc85859095e01a53847432ba9a53ddf7986f7a54a11b73d0e143f", size = 8218218, upload-time = "2026-04-24T00:13:20.974Z" }, + { url = "https://files.pythonhosted.org/packages/85/8f/becc9722cafc64f5d2eb0b7c1bf5f585271c618a45dbd8fabeb021f898b6/matplotlib-3.10.9-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aba1615dabe83188e19d4f75a253c6a08423e04c1425e64039f800050a69de6b", size = 9608145, upload-time = "2026-04-24T00:13:23.228Z" }, + { url = "https://files.pythonhosted.org/packages/32/5d/f7e914f7d9325abff4057cee62c0fa70263683189f774473cbfb534cd13b/matplotlib-3.10.9-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:34cf8167e023ad956c15f36302911d5406bd99a9862c1a8499ea6f7c0e015dc2", size = 9885085, upload-time = "2026-04-24T00:13:25.849Z" }, + { url = "https://files.pythonhosted.org/packages/a5/fd/fa69f2221534e80cc5772ac2b7d222011a2acafc2ec7216d5dd174c864ae/matplotlib-3.10.9-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:59476c6d29d612b8e9bb6ce8c5b631be6ba8f9e3a2421f22a02b192c7dd28716", size = 9672358, upload-time = "2026-04-24T00:13:28.906Z" }, + { url = "https://files.pythonhosted.org/packages/ab/1a/5a4f747a8b271cbb024946d2dd3c913ab5032ba430626f8c3528ada96b4b/matplotlib-3.10.9-cp314-cp314-win_amd64.whl", hash = "sha256:336b9acc64d309063126edcdaca00db9373af3c476bb94388fe9c5a53ad13e6f", size = 8349970, upload-time = "2026-04-24T00:13:31.904Z" }, + { url = "https://files.pythonhosted.org/packages/64/dc/95d60ecaefe30680a154b52ea96ab4b0dab547f1fd6aa12f5fb655e89cae/matplotlib-3.10.9-cp314-cp314-win_arm64.whl", hash = "sha256:2dc9477819ffd78ad12a20df1d9d6a6bd4fec6aaa9072681465fddca052f1456", size = 8272785, upload-time = "2026-04-24T00:13:34.511Z" }, + { url = "https://files.pythonhosted.org/packages/70/a0/005d68bc8b8418300ce6591f18586910a8526806e2ab663933d9f20a41e9/matplotlib-3.10.9-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:da4e09638420548f31c354032a6250e473c68e5a4e96899b4844cf39ddea23fe", size = 8367999, upload-time = "2026-04-24T00:13:36.962Z" }, + { url = "https://files.pythonhosted.org/packages/22/05/1236cc9290be70b2498af20ca348add76e3fffe7f67b477db5133a84f3ea/matplotlib-3.10.9-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:345f6f68ecc8da0ca56fad2ea08fde1a115eda530079eca185d50a7bc3e146c6", size = 8264543, upload-time = "2026-04-24T00:13:39.851Z" }, + { url = "https://files.pythonhosted.org/packages/cd/c2/071f5a5ff6c5bd63aaaf2f45c811d9bf2ced94bde188d9e1a519e21d0cba/matplotlib-3.10.9-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4edcfbd8565339aa62f1cd4012f7180926fdbe71850f7b0d3c379c175cd6b66c", size = 9622800, upload-time = "2026-04-24T00:13:42.296Z" }, + { url = "https://files.pythonhosted.org/packages/95/57/da7d1f10a85624b9e7db68e069dd94e58dc41dbf9463c5921632ecbe3661/matplotlib-3.10.9-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6be157fe17fc37cb95ac1d7374cf717ce9259616edec911a78d9d26dae8522d4", size = 9888561, upload-time = "2026-04-24T00:13:45.026Z" }, + { url = "https://files.pythonhosted.org/packages/67/b2/ef8d6bb59b0edb6c16c968b70f548aa13b54348972def5aa6ac85df67145/matplotlib-3.10.9-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:4e42042d54db34fda4e95a7bd3e5789c2a995d2dad3eb8850232ee534092fbbf", size = 9680884, upload-time = "2026-04-24T00:13:48.066Z" }, + { url = "https://files.pythonhosted.org/packages/61/1c/d21bfeb9931881ebe96bcfcff27c7ae4b160ae0ec291a714c42641a56d75/matplotlib-3.10.9-cp314-cp314t-win_amd64.whl", hash = "sha256:c27df8b3848f32a83d1767566595e43cfaa4460380974da06f4279a7ec143c39", size = 8432333, upload-time = "2026-04-24T00:13:51.008Z" }, + { url = "https://files.pythonhosted.org/packages/78/23/92493c3e6e1b635ccfff146f7b99e674808787915420373ac399283764c2/matplotlib-3.10.9-cp314-cp314t-win_arm64.whl", hash = "sha256:a49f1eadc84ca85fd72fa4e89e70e61bf86452df6f971af04b12c60761a0772c", size = 8324785, upload-time = "2026-04-24T00:13:53.633Z" }, +] + +[[package]] +name = "matplotlib-inline" +version = "0.2.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/c0/9f7c9a46090390368a4d7bcb76bb87a4a36c421e4c0792cdb53486ffac7a/matplotlib_inline-0.2.2.tar.gz", hash = "sha256:72f3fe8fce36b70d4a5b612f899090cd0401deddc4ea90e1572b9f4bfb058c79", size = 8150, upload-time = "2026-05-08T17:33:33.49Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/09/5b161152e2d90f7b87f781c2e1267494aef9c32498df793f73ad0a0a494a/matplotlib_inline-0.2.2-py3-none-any.whl", hash = "sha256:3c821cf1c209f59fb2d2d64abbf5b23b67bcb2210d663f9918dd851c6da1fcf6", size = 9534, upload-time = "2026-05-08T17:33:32.055Z" }, +] + +[[package]] +name = "mistune" +version = "3.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ca/84/620cc3f7e3adf6f5067e10f4dbae71295d8f9e16d5d3f9ef97c40f2f592c/mistune-3.2.1.tar.gz", hash = "sha256:7c8e5501d38bac1582e067e46c8343f17d57ea1aaa735823f3aba1fd59c88a28", size = 98003, upload-time = "2026-05-03T14:33:22.312Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/7f/a946aa4f8752b37102b41e64dca18a1976ac705c3a0d1dfe74d820a02552/mistune-3.2.1-py3-none-any.whl", hash = "sha256:78cdb0ba5e938053ccf63651b352508d2efa9411dc8810bfb05f2dc5140c0048", size = 53749, upload-time = "2026-05-03T14:33:20.551Z" }, +] + +[[package]] +name = "nbclient" +version = "0.10.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-client" }, + { name = "jupyter-core" }, + { name = "nbformat" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/56/91/1c1d5a4b9a9ebba2b4e32b8c852c2975c872aec1fe42ab5e516b2cecd193/nbclient-0.10.4.tar.gz", hash = "sha256:1e54091b16e6da39e297b0ece3e10f6f29f4ac4e8ee515d29f8a7099bd6553c9", size = 62554, upload-time = "2025-12-23T07:45:46.369Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/83/a0/5b0c2f11142ed1dddec842457d3f65eaf71a0080894eb6f018755b319c3a/nbclient-0.10.4-py3-none-any.whl", hash = "sha256:9162df5a7373d70d606527300a95a975a47c137776cd942e52d9c7e29ff83440", size = 25465, upload-time = "2025-12-23T07:45:44.51Z" }, +] + +[[package]] +name = "nbconvert" +version = "7.17.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beautifulsoup4" }, + { name = "bleach", extra = ["css"] }, + { name = "defusedxml" }, + { name = "jinja2" }, + { name = "jupyter-core" }, + { name = "jupyterlab-pygments" }, + { name = "markupsafe" }, + { name = "mistune" }, + { name = "nbclient" }, + { name = "nbformat" }, + { name = "packaging" }, + { name = "pandocfilters" }, + { name = "pygments" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/01/b1/708e53fe2e429c103c6e6e159106bcf0357ac41aa4c28772bd8402339051/nbconvert-7.17.1.tar.gz", hash = "sha256:34d0d0a7e73ce3cbab6c5aae8f4f468797280b01fd8bd2ca746da8569eddd7d2", size = 865311, upload-time = "2026-04-08T00:44:14.914Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/67/f8/bb0a9d5f46819c821dc1f004aa2cc29b1d91453297dbf5ff20470f00f193/nbconvert-7.17.1-py3-none-any.whl", hash = "sha256:aa85c087b435e7bf1ffd03319f658e285f2b89eccab33bc1ba7025495ab3e7c8", size = 261927, upload-time = "2026-04-08T00:44:12.845Z" }, +] + +[[package]] +name = "nbformat" +version = "5.10.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "fastjsonschema" }, + { name = "jsonschema" }, + { name = "jupyter-core" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6d/fd/91545e604bc3dad7dca9ed03284086039b294c6b3d75c0d2fa45f9e9caf3/nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a", size = 142749, upload-time = "2024-04-04T11:20:37.371Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/82/0340caa499416c78e5d8f5f05947ae4bc3cba53c9f038ab6e9ed964e22f1/nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b", size = 78454, upload-time = "2024-04-04T11:20:34.895Z" }, +] + +[[package]] +name = "nest-asyncio" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/83/f8/51569ac65d696c8ecbee95938f89d4abf00f47d58d48f6fbabfe8f0baefe/nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe", size = 7418, upload-time = "2024-01-21T14:25:19.227Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/c4/c2971a3ba4c6103a3d10c4b0f24f461ddc027f0f09763220cf35ca1401b3/nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c", size = 5195, upload-time = "2024-01-21T14:25:17.223Z" }, +] + +[[package]] +name = "notebook" +version = "7.5.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-server" }, + { name = "jupyterlab" }, + { name = "jupyterlab-server" }, + { name = "notebook-shim" }, + { name = "tornado" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2a/c2/cf59bd2e6f2c8b976b52477e3e53bf6f97bc714ed046a51821afb428eaee/notebook-7.5.6.tar.gz", hash = "sha256:621174aade80108f0020b0f00738000b215f75fa3cd90771ad7aa0f24536a4e1", size = 14170814, upload-time = "2026-04-30T11:46:26.613Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/d6/1fd0646b9bbd9efbb0b8ae21b2325fbef515769a5621c03e31d8eb8da587/notebook-7.5.6-py3-none-any.whl", hash = "sha256:4dde3f8fb55fa8fb7946d58c6e869ce9baf46d00fc070664f62604569d0faca0", size = 14581730, upload-time = "2026-04-30T11:46:22.342Z" }, +] + +[[package]] +name = "notebook-shim" +version = "0.2.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-server" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/54/d2/92fa3243712b9a3e8bafaf60aac366da1cada3639ca767ff4b5b3654ec28/notebook_shim-0.2.4.tar.gz", hash = "sha256:b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb", size = 13167, upload-time = "2024-02-14T23:35:18.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f9/33/bd5b9137445ea4b680023eb0469b2bb969d61303dedb2aac6560ff3d14a1/notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef", size = 13307, upload-time = "2024-02-14T23:35:16.286Z" }, +] + +[[package]] +name = "numpy" +version = "2.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/ad/fed0499ce6a338d2a03ebae59cd15093910c8875328855781952abf6c2fe/numpy-2.4.6.tar.gz", hash = "sha256:f3a3570c4a2a16746ac2c31a7c7c7b0c186b95ce902e33db6f28094ed7387dda", size = 20735807, upload-time = "2026-05-18T23:37:14.07Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f8/91/3ab2044d05fd16d343c5ac2e69b127f1b2854040dd20b193257c78028bd3/numpy-2.4.6-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:06ca2f61ec4385a07a6977c55ba998a4466c123642b4a32694d3128fce18c079", size = 16683458, upload-time = "2026-05-18T23:35:38.353Z" }, + { url = "https://files.pythonhosted.org/packages/8e/62/764ce66fa4147ae6d73071a3abf804ffe606f174618697c571acdf26a7c9/numpy-2.4.6-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:38efbc8de75c7a0fc1ac190162d892787f3f47b57cc291231aafee36b80982b7", size = 14704559, upload-time = "2026-05-18T23:35:42.14Z" }, + { url = "https://files.pythonhosted.org/packages/60/61/23f27c172f022e04025b7dc2367f4d63c1a398120607ec896228649a6f48/numpy-2.4.6-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:d581b735e177fdcdce6fed8e7e8880a3fb6ee4e3653a3ac6af01c6f4c03effc5", size = 5209716, upload-time = "2026-05-18T23:35:45.377Z" }, + { url = "https://files.pythonhosted.org/packages/03/71/21cf70dc6ea3e3acb95fc53a265b2fc248b981f0194ceb5b475271b8809d/numpy-2.4.6-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:0a041d3d761dc3c35cc56ce0351506a02bcbc25f7b169f652435141a17db9096", size = 6543947, upload-time = "2026-05-18T23:35:47.926Z" }, + { url = "https://files.pythonhosted.org/packages/d5/91/64288395ee1799bd2e0b04a305dce9666da90c961e1f3fe982a05ee1c036/numpy-2.4.6-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:40fdc1ae7125e518ea98e53e69a4ebc27e1fd50510c47b7ea130cf21e5e1d42b", size = 15685197, upload-time = "2026-05-18T23:35:50.863Z" }, + { url = "https://files.pythonhosted.org/packages/f3/eb/ebffaa97dc55502df69584a8f0dcf07f69a3e0b3e2323670a2722db9aa39/numpy-2.4.6-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a2c306dea656c12c68f51f4cea133cbe78ca7435eb28c735eac1d3ebe73be6e8", size = 16638245, upload-time = "2026-05-18T23:35:54.752Z" }, + { url = "https://files.pythonhosted.org/packages/b8/0b/54f9da33128d7e350fab89c7455902eeae70349ee52bddb448dc4a576f45/numpy-2.4.6-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:33111801a01c12a8a1e3721f0a9232f8cfc8ae2c6b7098167e6f623c6073f402", size = 17036587, upload-time = "2026-05-18T23:35:58.355Z" }, + { url = "https://files.pythonhosted.org/packages/b6/f0/fdebc1052db1cc37c64beb22072d67cd6d1c71adca1299f53dec2b5e20d3/numpy-2.4.6-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ae506e6902902557576a26ff33eda8695e7ecb3cb36c3b573a0765dee114ebdb", size = 18363226, upload-time = "2026-05-18T23:36:02.845Z" }, + { url = "https://files.pythonhosted.org/packages/aa/b4/298628d98c72b57e57f7165ae6a481a1deaf6f3c28262a6e4c739c275930/numpy-2.4.6-cp314-cp314-win32.whl", hash = "sha256:aaf159caa35993cb1f56fb9b8e4610d35758e7ca005412eb1daa856a78c9c4b1", size = 6010196, upload-time = "2026-05-18T23:36:05.92Z" }, + { url = "https://files.pythonhosted.org/packages/df/ac/46de6dda46478f7942f839e094970be2d4a861e005c4b3bf07c92e291a09/numpy-2.4.6-cp314-cp314-win_amd64.whl", hash = "sha256:b507f5c4c1d508876d1819b6bf9a49d365b96320b5d4993426b33a23ca4b8261", size = 12450334, upload-time = "2026-05-18T23:36:09.107Z" }, + { url = "https://files.pythonhosted.org/packages/78/92/b8b798ac784102c0da830d2257d59358e3d3d90d1e2b3f2575dad976c5cf/numpy-2.4.6-cp314-cp314-win_arm64.whl", hash = "sha256:6f41ae150c4e32db4f3310cdaf64b1593a03dbabe29eec77fc9b50fe64061df6", size = 10495678, upload-time = "2026-05-18T23:36:12.766Z" }, + { url = "https://files.pythonhosted.org/packages/30/34/ec28d1aa8115971537c01469ab2011ee96827930f0a124de1000cc2a7ed7/numpy-2.4.6-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ece3d2cfe132e7d51f44a832b303895e6f2d499c5e74dfbdb06ee246147a304a", size = 14823672, upload-time = "2026-05-18T23:36:16.473Z" }, + { url = "https://files.pythonhosted.org/packages/16/bd/f6d1fede4e54e8042a7ff97bb495510f3c220f94bcd9e8b228e87c92cc0d/numpy-2.4.6-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:e3e5193ef5a3dc73bceee50f7fdc2c90dbb76c42df8d8fae3d1067a583df579e", size = 5328731, upload-time = "2026-05-18T23:36:19.767Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f0/e105b9e2fd728a9910103884decd6951d9dd73896b914a98d9a231de02ee/numpy-2.4.6-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:17f9ade344e7d9b464a084d69bcf18fc691cb1db67c62ed80820bf4926d78f0e", size = 6649805, upload-time = "2026-05-18T23:36:22.266Z" }, + { url = "https://files.pythonhosted.org/packages/82/dd/1206a7ca6ab15e3f02069707ca96222e202af681bb73756da7527f3cb837/numpy-2.4.6-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9cd5ffd25db4e7ba6a375693b3fc0fc1791ec636c17db3720da19bde7180ec43", size = 15730496, upload-time = "2026-05-18T23:36:25.713Z" }, + { url = "https://files.pythonhosted.org/packages/51/e7/38d3ea825dcab85a591734decb2f6c67caa7c8367d374df1a1c3842f9b07/numpy-2.4.6-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7d92c3819208a60205a12a245c91ad70cb0a85336659b19b834205573ac8456e", size = 16679616, upload-time = "2026-05-18T23:36:29.652Z" }, + { url = "https://files.pythonhosted.org/packages/93/b7/caabfdf53edf663e0b4eb74d7d405d83baef09eb5e83bcd32d601d72b93e/numpy-2.4.6-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e85b752a1e912b70eaad4fafbd4d1238007ab221de2009b9a2f5ae7461239895", size = 17085145, upload-time = "2026-05-18T23:36:33.449Z" }, + { url = "https://files.pythonhosted.org/packages/f9/45/68d7c33a6bcf3e5aa3bdbd57a367e6f615286dfd6482f97e8ffeb734306e/numpy-2.4.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:29cb7f67d10b479ff07c17d33e39f78c07f71c40ef30d63c153d340e96cd3fb4", size = 18403813, upload-time = "2026-05-18T23:36:37.369Z" }, + { url = "https://files.pythonhosted.org/packages/9c/50/0753655aa844c99cd9e018aacf76f130f1bd81d881bb74bc0aef5d73a8ba/numpy-2.4.6-cp314-cp314t-win32.whl", hash = "sha256:260a5d70215b61ab4fadf5c7baacd64821842975eea312125ed3c39a6391b063", size = 6156982, upload-time = "2026-05-18T23:36:40.817Z" }, + { url = "https://files.pythonhosted.org/packages/b2/d4/7c67becf668f973cb490cec3e98dfd799d866f9c989a54d355672cfa0db6/numpy-2.4.6-cp314-cp314t-win_amd64.whl", hash = "sha256:81a1cca95ed5bb92aa8b10dd2cdc9a0d3853a50fad926c28b5d7e8ea54389627", size = 12638908, upload-time = "2026-05-18T23:36:43.996Z" }, + { url = "https://files.pythonhosted.org/packages/43/bb/e1c71a4295b1b1d1393d50dbb4f2a36283c6859d9d3892e84f00ec5a91d5/numpy-2.4.6-cp314-cp314t-win_arm64.whl", hash = "sha256:0c9136e14ed34a9e343a31c533d78a9813a69a3148332bce5e9821cb2f996e66", size = 10565867, upload-time = "2026-05-18T23:36:47.114Z" }, +] + +[[package]] +name = "packaging" +version = "26.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/f1/e7a6dd94a8d4a5626c03e4e99c87f241ba9e350cd9e6d75123f992427270/packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661", size = 228134, upload-time = "2026-04-24T20:15:23.917Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e", size = 100195, upload-time = "2026-04-24T20:15:22.081Z" }, +] + +[[package]] +name = "pandas" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "python-dateutil" }, + { name = "tzdata", marker = "sys_platform == 'emscripten' or sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f8/87/4341c6252d1c47b08768c3d25ac487362bf403f0313ddae4a2a26c9b1b4c/pandas-3.0.3.tar.gz", hash = "sha256:696a4a00a2a2a35d4e5deb3fc946641b96c944f02230e4f76137fe35d806c4fc", size = 4651414, upload-time = "2026-05-11T18:54:29.21Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/86/54/effdcc3c0ff7a08037889200e148ebe94c16c4f653be078c7b3675955df1/pandas-3.0.3-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:3650109c0f22879df8bd6179ab9ee3d7f1d1d4e7e0094a3f0032d9f51e2e64ac", size = 10336065, upload-time = "2026-05-11T18:53:41.099Z" }, + { url = "https://files.pythonhosted.org/packages/68/10/bf2d6738d72748b961a3751ab89522d58c54efc36a8e1a12161216cd45cf/pandas-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:bab900348131a7db1f69a7309ef141fd5680f1487094193bcbbb61791573bf8f", size = 9926101, upload-time = "2026-05-11T18:53:43.515Z" }, + { url = "https://files.pythonhosted.org/packages/ae/e9/e35cf11c8a136e757b956f5f0efdcaa50aecde85ea055f1898dfc68262f3/pandas-3.0.3-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ba7e08b9ac1d54569cd1e256e3668975ed624d6826f7b68df0342b012007bddb", size = 10457553, upload-time = "2026-05-11T18:53:46.394Z" }, + { url = "https://files.pythonhosted.org/packages/58/3b/1cdec6772bdbaf7b25dab360c59f03cadf05492dd724c6540af905389b07/pandas-3.0.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d71c63ae4ebdbf70209742096f1fc46a83a0613c99d4b23766cced9ff8cd62a", size = 10914065, upload-time = "2026-05-11T18:53:49.134Z" }, + { url = "https://files.pythonhosted.org/packages/c4/c2/1ef644445fcd72e3627bceec77e3560636f87ddce4ed841afe76b83b5bf9/pandas-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e3a2ec42c98ffa2565a67e08e218d06d72576d758d90facb7c00805194d8f360", size = 11459188, upload-time = "2026-05-11T18:53:52.527Z" }, + { url = "https://files.pythonhosted.org/packages/7e/49/4d8d4f42cbc9c4adc7a1870f269c02cbd6cd40d059622c06fb298addcbad/pandas-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:335f62418ed562cfc3c49e9e196375c28b729dcef8543abf4f9438e381bf3c76", size = 11982966, upload-time = "2026-05-11T18:53:55.043Z" }, + { url = "https://files.pythonhosted.org/packages/38/55/792619469bab9882d8bbd5865d45a72f6478762d04a9af4bf0d08c503e95/pandas-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:3c20a521bbb85902f79f7270c80a59e1b5452d96d170c034f207181870f97ac5", size = 9876755, upload-time = "2026-05-11T18:53:58.067Z" }, + { url = "https://files.pythonhosted.org/packages/2a/af/33c469653b0ba03b50c3a98192d4c07f0c75c66b263ceb097fce0ee97d31/pandas-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:a2d2dff8a04f3917b55ab3910c32990f8ddf7eceba114947838cefa976a68977", size = 9198658, upload-time = "2026-05-11T18:54:00.733Z" }, + { url = "https://files.pythonhosted.org/packages/a2/fa/b8c257bd76b8bd060c3a9151c1fca05e9b9c5e3af5d0f549c0356f6d143d/pandas-3.0.3-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:0d589105b3c14645af1738ff279b2995102d8f7a03b0a66dc8d95550eb513e04", size = 10787242, upload-time = "2026-05-11T18:54:03.564Z" }, + { url = "https://files.pythonhosted.org/packages/54/eb/f19206ffb0bf1919002969aa448b4702c6594845156a6f8050674855aac3/pandas-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:13fc1e853d9e04743d11ba75a985ccbc2a317fe07d8af61e445a6fd24dacd6a6", size = 10436369, upload-time = "2026-05-11T18:54:06.311Z" }, + { url = "https://files.pythonhosted.org/packages/fd/24/c7c39fb4fe22b71a0c2d78bf0c585c600092d85f94f086d2b3b2f6ca27e2/pandas-3.0.3-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:819959dab7bbd0049c15623fbac4e29a191b9528160a61fb1032242d8ced2d9c", size = 10358306, upload-time = "2026-05-11T18:54:09.085Z" }, + { url = "https://files.pythonhosted.org/packages/16/ec/dd2a9eb7fa1204df88c0864164e35b228ac581062ac612ba0a67fd812e4c/pandas-3.0.3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:60ae316d3fd75d1858d450d0db0103ea2be3e7d4a95ec2f064f7e2ae63f7b028", size = 10758394, upload-time = "2026-05-11T18:54:11.956Z" }, + { url = "https://files.pythonhosted.org/packages/95/6e/00c61ea8e85b4f6d8d35e11852a1a4998fc7fafc91c6a602d1cc9c972d64/pandas-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:bd3a518890b400d32f9023722dc9a9a5c969f00b415419a3c06c043f09bb5d7d", size = 11375717, upload-time = "2026-05-11T18:54:14.539Z" }, + { url = "https://files.pythonhosted.org/packages/31/89/8fc1c268969fac43688d65fd92e67df24bd128d53cb4d2eee534cd307399/pandas-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:9c39be2d709d01fa972a0cabc522389fceca4f3969332ba25a7d6c5802cf976a", size = 11828897, upload-time = "2026-05-11T18:54:17.146Z" }, + { url = "https://files.pythonhosted.org/packages/56/3b/e7d20dea247a3e6dc0bd8a6953854afbedc03951def4e7371e05e7263e25/pandas-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4db8c527972a821cf5286b40ccc57642a39bc62e62022b42f99f8a67fca8c3a1", size = 10900855, upload-time = "2026-05-11T18:54:19.72Z" }, + { url = "https://files.pythonhosted.org/packages/0f/54/68a0978d1ef8502b8492099beaa6e7a0c1b32e3b5d4f677f5810cb08711c/pandas-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:b2c95f8bfc1ee412bf482605d7bfd30c12d1d26bd59fdd91efeef1d4718decb1", size = 9466464, upload-time = "2026-05-11T18:54:22.754Z" }, +] + +[[package]] +name = "pandocfilters" +version = "1.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/70/6f/3dd4940bbe001c06a65f88e36bad298bc7a0de5036115639926b0c5c0458/pandocfilters-1.5.1.tar.gz", hash = "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e", size = 8454, upload-time = "2024-01-18T20:08:13.726Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/af/4fbc8cab944db5d21b7e2a5b8e9211a03a79852b1157e2c102fcc61ac440/pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc", size = 8663, upload-time = "2024-01-18T20:08:11.28Z" }, +] + +[[package]] +name = "parso" +version = "0.8.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/30/4b/90c937815137d43ce71ba043cd3566221e9df6b9c805f24b5d138c9d40a7/parso-0.8.7.tar.gz", hash = "sha256:eaaac4c9fdd5e9e8852dc778d2d7405897ec510f2a298071453e5e3a07914bb1", size = 401824, upload-time = "2026-05-01T23:13:02.138Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/99/5d/8268b644392ee874ee82a635cd0df1773de230bde356c38de28e298392cc/parso-0.8.7-py2.py3-none-any.whl", hash = "sha256:a8926eb2a1b915486941fdbd31e86a4baf88fe8c210f25f2f35ecec5b574ca1c", size = 107025, upload-time = "2026-05-01T23:12:58.867Z" }, +] + +[[package]] +name = "pexpect" +version = "4.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ptyprocess", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/92/cc564bf6381ff43ce1f4d06852fc19a2f11d180f23dc32d9588bee2f149d/pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f", size = 166450, upload-time = "2023-11-25T09:07:26.339Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772, upload-time = "2023-11-25T06:56:14.81Z" }, +] + +[[package]] +name = "pillow" +version = "12.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/21/c2bcdd5906101a30244eaffc1b6e6ce71a31bd0742a01eb89e660ebfac2d/pillow-12.2.0.tar.gz", hash = "sha256:a830b1a40919539d07806aa58e1b114df53ddd43213d9c8b75847eee6c0182b5", size = 46987819, upload-time = "2026-04-01T14:46:17.687Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bf/98/4595daa2365416a86cb0d495248a393dfc84e96d62ad080c8546256cb9c0/pillow-12.2.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:3adc9215e8be0448ed6e814966ecf3d9952f0ea40eb14e89a102b87f450660d8", size = 4100848, upload-time = "2026-04-01T14:44:48.48Z" }, + { url = "https://files.pythonhosted.org/packages/0b/79/40184d464cf89f6663e18dfcf7ca21aae2491fff1a16127681bf1fa9b8cf/pillow-12.2.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:6a9adfc6d24b10f89588096364cc726174118c62130c817c2837c60cf08a392b", size = 4176515, upload-time = "2026-04-01T14:44:51.353Z" }, + { url = "https://files.pythonhosted.org/packages/b0/63/703f86fd4c422a9cf722833670f4f71418fb116b2853ff7da722ea43f184/pillow-12.2.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:6a6e67ea2e6feda684ed370f9a1c52e7a243631c025ba42149a2cc5934dec295", size = 3640159, upload-time = "2026-04-01T14:44:53.588Z" }, + { url = "https://files.pythonhosted.org/packages/71/e0/fb22f797187d0be2270f83500aab851536101b254bfa1eae10795709d283/pillow-12.2.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:2bb4a8d594eacdfc59d9e5ad972aa8afdd48d584ffd5f13a937a664c3e7db0ed", size = 5312185, upload-time = "2026-04-01T14:44:56.039Z" }, + { url = "https://files.pythonhosted.org/packages/ba/8c/1a9e46228571de18f8e28f16fabdfc20212a5d019f3e3303452b3f0a580d/pillow-12.2.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:80b2da48193b2f33ed0c32c38140f9d3186583ce7d516526d462645fd98660ae", size = 4695386, upload-time = "2026-04-01T14:44:58.663Z" }, + { url = "https://files.pythonhosted.org/packages/70/62/98f6b7f0c88b9addd0e87c217ded307b36be024d4ff8869a812b241d1345/pillow-12.2.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22db17c68434de69d8ecfc2fe821569195c0c373b25cccb9cbdacf2c6e53c601", size = 6280384, upload-time = "2026-04-01T14:45:01.5Z" }, + { url = "https://files.pythonhosted.org/packages/5e/03/688747d2e91cfbe0e64f316cd2e8005698f76ada3130d0194664174fa5de/pillow-12.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7b14cc0106cd9aecda615dd6903840a058b4700fcb817687d0ee4fc8b6e389be", size = 8091599, upload-time = "2026-04-01T14:45:04.5Z" }, + { url = "https://files.pythonhosted.org/packages/f6/35/577e22b936fcdd66537329b33af0b4ccfefaeabd8aec04b266528cddb33c/pillow-12.2.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8cbeb542b2ebc6fcdacabf8aca8c1a97c9b3ad3927d46b8723f9d4f033288a0f", size = 6396021, upload-time = "2026-04-01T14:45:07.117Z" }, + { url = "https://files.pythonhosted.org/packages/11/8d/d2532ad2a603ca2b93ad9f5135732124e57811d0168155852f37fbce2458/pillow-12.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4bfd07bc812fbd20395212969e41931001fd59eb55a60658b0e5710872e95286", size = 7083360, upload-time = "2026-04-01T14:45:09.763Z" }, + { url = "https://files.pythonhosted.org/packages/5e/26/d325f9f56c7e039034897e7380e9cc202b1e368bfd04d4cbe6a441f02885/pillow-12.2.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:9aba9a17b623ef750a4d11b742cbafffeb48a869821252b30ee21b5e91392c50", size = 6507628, upload-time = "2026-04-01T14:45:12.378Z" }, + { url = "https://files.pythonhosted.org/packages/5f/f7/769d5632ffb0988f1c5e7660b3e731e30f7f8ec4318e94d0a5d674eb65a4/pillow-12.2.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:deede7c263feb25dba4e82ea23058a235dcc2fe1f6021025dc71f2b618e26104", size = 7209321, upload-time = "2026-04-01T14:45:15.122Z" }, + { url = "https://files.pythonhosted.org/packages/6a/7a/c253e3c645cd47f1aceea6a8bacdba9991bf45bb7dfe927f7c893e89c93c/pillow-12.2.0-cp314-cp314-win32.whl", hash = "sha256:632ff19b2778e43162304d50da0181ce24ac5bb8180122cbe1bf4673428328c7", size = 6479723, upload-time = "2026-04-01T14:45:17.797Z" }, + { url = "https://files.pythonhosted.org/packages/cd/8b/601e6566b957ca50e28725cb6c355c59c2c8609751efbecd980db44e0349/pillow-12.2.0-cp314-cp314-win_amd64.whl", hash = "sha256:4e6c62e9d237e9b65fac06857d511e90d8461a32adcc1b9065ea0c0fa3a28150", size = 7217400, upload-time = "2026-04-01T14:45:20.529Z" }, + { url = "https://files.pythonhosted.org/packages/d6/94/220e46c73065c3e2951bb91c11a1fb636c8c9ad427ac3ce7d7f3359b9b2f/pillow-12.2.0-cp314-cp314-win_arm64.whl", hash = "sha256:b1c1fbd8a5a1af3412a0810d060a78b5136ec0836c8a4ef9aa11807f2a22f4e1", size = 2554835, upload-time = "2026-04-01T14:45:23.162Z" }, + { url = "https://files.pythonhosted.org/packages/b6/ab/1b426a3974cb0e7da5c29ccff4807871d48110933a57207b5a676cccc155/pillow-12.2.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:57850958fe9c751670e49b2cecf6294acc99e562531f4bd317fa5ddee2068463", size = 5314225, upload-time = "2026-04-01T14:45:25.637Z" }, + { url = "https://files.pythonhosted.org/packages/19/1e/dce46f371be2438eecfee2a1960ee2a243bbe5e961890146d2dee1ff0f12/pillow-12.2.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:d5d38f1411c0ed9f97bcb49b7bd59b6b7c314e0e27420e34d99d844b9ce3b6f3", size = 4698541, upload-time = "2026-04-01T14:45:28.355Z" }, + { url = "https://files.pythonhosted.org/packages/55/c3/7fbecf70adb3a0c33b77a300dc52e424dc22ad8cdc06557a2e49523b703d/pillow-12.2.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5c0a9f29ca8e79f09de89293f82fc9b0270bb4af1d58bc98f540cc4aedf03166", size = 6322251, upload-time = "2026-04-01T14:45:30.924Z" }, + { url = "https://files.pythonhosted.org/packages/1c/3c/7fbc17cfb7e4fe0ef1642e0abc17fc6c94c9f7a16be41498e12e2ba60408/pillow-12.2.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1610dd6c61621ae1cf811bef44d77e149ce3f7b95afe66a4512f8c59f25d9ebe", size = 8127807, upload-time = "2026-04-01T14:45:33.908Z" }, + { url = "https://files.pythonhosted.org/packages/ff/c3/a8ae14d6defd2e448493ff512fae903b1e9bd40b72efb6ec55ce0048c8ce/pillow-12.2.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a34329707af4f73cf1782a36cd2289c0368880654a2c11f027bcee9052d35dd", size = 6433935, upload-time = "2026-04-01T14:45:36.623Z" }, + { url = "https://files.pythonhosted.org/packages/6e/32/2880fb3a074847ac159d8f902cb43278a61e85f681661e7419e6596803ed/pillow-12.2.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e9c4f5b3c546fa3458a29ab22646c1c6c787ea8f5ef51300e5a60300736905e", size = 7116720, upload-time = "2026-04-01T14:45:39.258Z" }, + { url = "https://files.pythonhosted.org/packages/46/87/495cc9c30e0129501643f24d320076f4cc54f718341df18cc70ec94c44e1/pillow-12.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:fb043ee2f06b41473269765c2feae53fc2e2fbf96e5e22ca94fb5ad677856f06", size = 6540498, upload-time = "2026-04-01T14:45:41.879Z" }, + { url = "https://files.pythonhosted.org/packages/18/53/773f5edca692009d883a72211b60fdaf8871cbef075eaa9d577f0a2f989e/pillow-12.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f278f034eb75b4e8a13a54a876cc4a5ab39173d2cdd93a638e1b467fc545ac43", size = 7239413, upload-time = "2026-04-01T14:45:44.705Z" }, + { url = "https://files.pythonhosted.org/packages/c9/e4/4b64a97d71b2a83158134abbb2f5bd3f8a2ea691361282f010998f339ec7/pillow-12.2.0-cp314-cp314t-win32.whl", hash = "sha256:6bb77b2dcb06b20f9f4b4a8454caa581cd4dd0643a08bacf821216a16d9c8354", size = 6482084, upload-time = "2026-04-01T14:45:47.568Z" }, + { url = "https://files.pythonhosted.org/packages/ba/13/306d275efd3a3453f72114b7431c877d10b1154014c1ebbedd067770d629/pillow-12.2.0-cp314-cp314t-win_amd64.whl", hash = "sha256:6562ace0d3fb5f20ed7290f1f929cae41b25ae29528f2af1722966a0a02e2aa1", size = 7225152, upload-time = "2026-04-01T14:45:50.032Z" }, + { url = "https://files.pythonhosted.org/packages/ff/6e/cf826fae916b8658848d7b9f38d88da6396895c676e8086fc0988073aaf8/pillow-12.2.0-cp314-cp314t-win_arm64.whl", hash = "sha256:aa88ccfe4e32d362816319ed727a004423aab09c5cea43c01a4b435643fa34eb", size = 2556579, upload-time = "2026-04-01T14:45:52.529Z" }, +] + +[[package]] +name = "platformdirs" +version = "4.9.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9f/4a/0883b8e3802965322523f0b200ecf33d31f10991d0401162f4b23c698b42/platformdirs-4.9.6.tar.gz", hash = "sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a", size = 29400, upload-time = "2026-04-09T00:04:10.812Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/75/a6/a0a304dc33b49145b21f4808d763822111e67d1c3a32b524a1baf947b6e1/platformdirs-4.9.6-py3-none-any.whl", hash = "sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917", size = 21348, upload-time = "2026-04-09T00:04:09.463Z" }, +] + +[[package]] +name = "prometheus-client" +version = "0.25.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1b/fb/d9aa83ffe43ce1f19e557c0971d04b90561b0cfd50762aafb01968285553/prometheus_client-0.25.0.tar.gz", hash = "sha256:5e373b75c31afb3c86f1a52fa1ad470c9aace18082d39ec0d2f918d11cc9ba28", size = 86035, upload-time = "2026-04-09T19:53:42.359Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8d/9b/d4b1e644385499c8346fa9b622a3f030dce14cd6ef8a1871c221a17a67e7/prometheus_client-0.25.0-py3-none-any.whl", hash = "sha256:d5aec89e349a6ec230805d0df882f3807f74fd6c1a2fa86864e3c2279059fed1", size = 64154, upload-time = "2026-04-09T19:53:41.324Z" }, +] + +[[package]] +name = "prompt-toolkit" +version = "3.0.52" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wcwidth" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/96/06e01a7b38dce6fe1db213e061a4602dd6032a8a97ef6c1a862537732421/prompt_toolkit-3.0.52.tar.gz", hash = "sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855", size = 434198, upload-time = "2025-08-27T15:24:02.057Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/03/0d3ce49e2505ae70cf43bc5bb3033955d2fc9f932163e84dc0779cc47f48/prompt_toolkit-3.0.52-py3-none-any.whl", hash = "sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955", size = 391431, upload-time = "2025-08-27T15:23:59.498Z" }, +] + +[[package]] +name = "psutil" +version = "7.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/aa/c6/d1ddf4abb55e93cebc4f2ed8b5d6dbad109ecb8d63748dd2b20ab5e57ebe/psutil-7.2.2.tar.gz", hash = "sha256:0746f5f8d406af344fd547f1c8daa5f5c33dbc293bb8d6a16d80b4bb88f59372", size = 493740, upload-time = "2026-01-28T18:14:54.428Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/69/ef179ab5ca24f32acc1dac0c247fd6a13b501fd5534dbae0e05a1c48b66d/psutil-7.2.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:eed63d3b4d62449571547b60578c5b2c4bcccc5387148db46e0c2313dad0ee00", size = 130664, upload-time = "2026-01-28T18:15:09.469Z" }, + { url = "https://files.pythonhosted.org/packages/7b/64/665248b557a236d3fa9efc378d60d95ef56dd0a490c2cd37dafc7660d4a9/psutil-7.2.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7b6d09433a10592ce39b13d7be5a54fbac1d1228ed29abc880fb23df7cb694c9", size = 131087, upload-time = "2026-01-28T18:15:11.724Z" }, + { url = "https://files.pythonhosted.org/packages/d5/2e/e6782744700d6759ebce3043dcfa661fb61e2fb752b91cdeae9af12c2178/psutil-7.2.2-cp314-cp314t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fa4ecf83bcdf6e6c8f4449aff98eefb5d0604bf88cb883d7da3d8d2d909546a", size = 182383, upload-time = "2026-01-28T18:15:13.445Z" }, + { url = "https://files.pythonhosted.org/packages/57/49/0a41cefd10cb7505cdc04dab3eacf24c0c2cb158a998b8c7b1d27ee2c1f5/psutil-7.2.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e452c464a02e7dc7822a05d25db4cde564444a67e58539a00f929c51eddda0cf", size = 185210, upload-time = "2026-01-28T18:15:16.002Z" }, + { url = "https://files.pythonhosted.org/packages/dd/2c/ff9bfb544f283ba5f83ba725a3c5fec6d6b10b8f27ac1dc641c473dc390d/psutil-7.2.2-cp314-cp314t-win_amd64.whl", hash = "sha256:c7663d4e37f13e884d13994247449e9f8f574bc4655d509c3b95e9ec9e2b9dc1", size = 141228, upload-time = "2026-01-28T18:15:18.385Z" }, + { url = "https://files.pythonhosted.org/packages/f2/fc/f8d9c31db14fcec13748d373e668bc3bed94d9077dbc17fb0eebc073233c/psutil-7.2.2-cp314-cp314t-win_arm64.whl", hash = "sha256:11fe5a4f613759764e79c65cf11ebdf26e33d6dd34336f8a337aa2996d71c841", size = 136284, upload-time = "2026-01-28T18:15:19.912Z" }, + { url = "https://files.pythonhosted.org/packages/e7/36/5ee6e05c9bd427237b11b3937ad82bb8ad2752d72c6969314590dd0c2f6e/psutil-7.2.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ed0cace939114f62738d808fdcecd4c869222507e266e574799e9c0faa17d486", size = 129090, upload-time = "2026-01-28T18:15:22.168Z" }, + { url = "https://files.pythonhosted.org/packages/80/c4/f5af4c1ca8c1eeb2e92ccca14ce8effdeec651d5ab6053c589b074eda6e1/psutil-7.2.2-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:1a7b04c10f32cc88ab39cbf606e117fd74721c831c98a27dc04578deb0c16979", size = 129859, upload-time = "2026-01-28T18:15:23.795Z" }, + { url = "https://files.pythonhosted.org/packages/b5/70/5d8df3b09e25bce090399cf48e452d25c935ab72dad19406c77f4e828045/psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:076a2d2f923fd4821644f5ba89f059523da90dc9014e85f8e45a5774ca5bc6f9", size = 155560, upload-time = "2026-01-28T18:15:25.976Z" }, + { url = "https://files.pythonhosted.org/packages/63/65/37648c0c158dc222aba51c089eb3bdfa238e621674dc42d48706e639204f/psutil-7.2.2-cp36-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b0726cecd84f9474419d67252add4ac0cd9811b04d61123054b9fb6f57df6e9e", size = 156997, upload-time = "2026-01-28T18:15:27.794Z" }, + { url = "https://files.pythonhosted.org/packages/8e/13/125093eadae863ce03c6ffdbae9929430d116a246ef69866dad94da3bfbc/psutil-7.2.2-cp36-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fd04ef36b4a6d599bbdb225dd1d3f51e00105f6d48a28f006da7f9822f2606d8", size = 148972, upload-time = "2026-01-28T18:15:29.342Z" }, + { url = "https://files.pythonhosted.org/packages/04/78/0acd37ca84ce3ddffaa92ef0f571e073faa6d8ff1f0559ab1272188ea2be/psutil-7.2.2-cp36-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b58fabe35e80b264a4e3bb23e6b96f9e45a3df7fb7eed419ac0e5947c61e47cc", size = 148266, upload-time = "2026-01-28T18:15:31.597Z" }, + { url = "https://files.pythonhosted.org/packages/b4/90/e2159492b5426be0c1fef7acba807a03511f97c5f86b3caeda6ad92351a7/psutil-7.2.2-cp37-abi3-win_amd64.whl", hash = "sha256:eb7e81434c8d223ec4a219b5fc1c47d0417b12be7ea866e24fb5ad6e84b3d988", size = 137737, upload-time = "2026-01-28T18:15:33.849Z" }, + { url = "https://files.pythonhosted.org/packages/8c/c7/7bb2e321574b10df20cbde462a94e2b71d05f9bbda251ef27d104668306a/psutil-7.2.2-cp37-abi3-win_arm64.whl", hash = "sha256:8c233660f575a5a89e6d4cb65d9f938126312bca76d8fe087b947b3a1aaac9ee", size = 134617, upload-time = "2026-01-28T18:15:36.514Z" }, +] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/e5/16ff212c1e452235a90aeb09066144d0c5a6a8c0834397e03f5224495c4e/ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220", size = 70762, upload-time = "2020-12-28T15:15:30.155Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", size = 13993, upload-time = "2020-12-28T15:15:28.35Z" }, +] + +[[package]] +name = "pure-eval" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cd/05/0a34433a064256a578f1783a10da6df098ceaa4a57bbeaa96a6c0352786b/pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42", size = 19752, upload-time = "2024-07-21T12:58:21.801Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", size = 11842, upload-time = "2024-07-21T12:58:20.04Z" }, +] + +[[package]] +name = "pycparser" +version = "3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1b/7d/92392ff7815c21062bea51aa7b87d45576f649f16458d78b7cf94b9ab2e6/pycparser-3.0.tar.gz", hash = "sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29", size = 103492, upload-time = "2026-01-21T14:26:51.89Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl", hash = "sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992", size = 48172, upload-time = "2026-01-21T14:26:50.693Z" }, +] + +[[package]] +name = "pygments" +version = "2.20.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f", size = 4955991, upload-time = "2026-03-29T13:29:33.898Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151, upload-time = "2026-03-29T13:29:30.038Z" }, +] + +[[package]] +name = "pyparsing" +version = "3.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/91/9c6ee907786a473bf81c5f53cf703ba0957b23ab84c264080fb5a450416f/pyparsing-3.3.2.tar.gz", hash = "sha256:c777f4d763f140633dcb6d8a3eda953bf7a214dc4eff598413c070bcdc117cbc", size = 6851574, upload-time = "2026-01-21T03:57:59.36Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl", hash = "sha256:850ba148bd908d7e2411587e247a1e4f0327839c40e2e5e6d05a007ecc69911d", size = 122781, upload-time = "2026-01-21T03:57:55.912Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, +] + [[package]] name = "python-dotenv" version = "1.2.2" @@ -22,13 +1270,396 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload-time = "2026-03-01T16:00:25.09Z" }, ] +[[package]] +name = "python-json-logger" +version = "4.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f7/ff/3cc9165fd44106973cd7ac9facb674a65ed853494592541d339bdc9a30eb/python_json_logger-4.1.0.tar.gz", hash = "sha256:b396b9e3ed782b09ff9d6e4f1683d46c83ad0d35d2e407c09a9ebbf038f88195", size = 17573, upload-time = "2026-03-29T04:39:56.805Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/27/be/0631a861af4d1c875f096c07d34e9a63639560a717130e7a87cbc82b7e3f/python_json_logger-4.1.0-py3-none-any.whl", hash = "sha256:132994765cf75bf44554be9aa49b06ef2345d23661a96720262716438141b6b2", size = 15021, upload-time = "2026-03-29T04:39:55.266Z" }, +] + +[[package]] +name = "pywinpty" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f7/54/37c7370ba91f579235049dc26cd2c5e657d2a943e01820844ffc81f32176/pywinpty-3.0.3.tar.gz", hash = "sha256:523441dc34d231fb361b4b00f8c99d3f16de02f5005fd544a0183112bcc22412", size = 31309, upload-time = "2026-02-04T21:51:09.524Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/88/2ff917caff61e55f38bcdb27de06ee30597881b2cae44fbba7627be015c4/pywinpty-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:d4b6b7b0fe0cdcd02e956bd57cfe9f4e5a06514eecf3b5ae174da4f951b58be9", size = 2113282, upload-time = "2026-02-04T21:52:08.188Z" }, + { url = "https://files.pythonhosted.org/packages/63/32/40a775343ace542cc43ece3f1d1fce454021521ecac41c4c4573081c2336/pywinpty-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:34789d685fc0d547ce0c8a65e5a70e56f77d732fa6e03c8f74fefb8cbb252019", size = 234207, upload-time = "2026-02-04T21:51:58.687Z" }, + { url = "https://files.pythonhosted.org/packages/8d/54/5d5e52f4cb75028104ca6faf36c10f9692389b1986d34471663b4ebebd6d/pywinpty-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:0c37e224a47a971d1a6e08649a1714dac4f63c11920780977829ed5c8cadead1", size = 2112910, upload-time = "2026-02-04T21:52:30.976Z" }, + { url = "https://files.pythonhosted.org/packages/0a/44/dcd184824e21d4620b06c7db9fbb15c3ad0a0f1fa2e6de79969fb82647ec/pywinpty-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:c4e9c3dff7d86ba81937438d5819f19f385a39d8f592d4e8af67148ceb4f6ab5", size = 233425, upload-time = "2026-02-04T21:51:56.754Z" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814, upload-time = "2025-09-25T21:32:35.712Z" }, + { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809, upload-time = "2025-09-25T21:32:36.789Z" }, + { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454, upload-time = "2025-09-25T21:32:37.966Z" }, + { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355, upload-time = "2025-09-25T21:32:39.178Z" }, + { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175, upload-time = "2025-09-25T21:32:40.865Z" }, + { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228, upload-time = "2025-09-25T21:32:42.084Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194, upload-time = "2025-09-25T21:32:43.362Z" }, + { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload-time = "2025-09-25T21:32:57.844Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload-time = "2025-09-25T21:32:59.247Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108, upload-time = "2025-09-25T21:32:44.377Z" }, + { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641, upload-time = "2025-09-25T21:32:45.407Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901, upload-time = "2025-09-25T21:32:48.83Z" }, + { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132, upload-time = "2025-09-25T21:32:50.149Z" }, + { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261, upload-time = "2025-09-25T21:32:51.808Z" }, + { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272, upload-time = "2025-09-25T21:32:52.941Z" }, + { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923, upload-time = "2025-09-25T21:32:54.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload-time = "2025-09-25T21:32:55.767Z" }, + { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" }, +] + +[[package]] +name = "pyzmq" +version = "27.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "implementation_name == 'pypy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/04/0b/3c9baedbdf613ecaa7aa07027780b8867f57b6293b6ee50de316c9f3222b/pyzmq-27.1.0.tar.gz", hash = "sha256:ac0765e3d44455adb6ddbf4417dcce460fc40a05978c08efdf2948072f6db540", size = 281750, upload-time = "2025-09-08T23:10:18.157Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/92/e7/038aab64a946d535901103da16b953c8c9cc9c961dadcbf3609ed6428d23/pyzmq-27.1.0-cp312-abi3-macosx_10_15_universal2.whl", hash = "sha256:452631b640340c928fa343801b0d07eb0c3789a5ffa843f6e1a9cee0ba4eb4fc", size = 1306279, upload-time = "2025-09-08T23:08:03.807Z" }, + { url = "https://files.pythonhosted.org/packages/e8/5e/c3c49fdd0f535ef45eefcc16934648e9e59dace4a37ee88fc53f6cd8e641/pyzmq-27.1.0-cp312-abi3-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1c179799b118e554b66da67d88ed66cd37a169f1f23b5d9f0a231b4e8d44a113", size = 895645, upload-time = "2025-09-08T23:08:05.301Z" }, + { url = "https://files.pythonhosted.org/packages/f8/e5/b0b2504cb4e903a74dcf1ebae157f9e20ebb6ea76095f6cfffea28c42ecd/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3837439b7f99e60312f0c926a6ad437b067356dc2bc2ec96eb395fd0fe804233", size = 652574, upload-time = "2025-09-08T23:08:06.828Z" }, + { url = "https://files.pythonhosted.org/packages/f8/9b/c108cdb55560eaf253f0cbdb61b29971e9fb34d9c3499b0e96e4e60ed8a5/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43ad9a73e3da1fab5b0e7e13402f0b2fb934ae1c876c51d0afff0e7c052eca31", size = 840995, upload-time = "2025-09-08T23:08:08.396Z" }, + { url = "https://files.pythonhosted.org/packages/c2/bb/b79798ca177b9eb0825b4c9998c6af8cd2a7f15a6a1a4272c1d1a21d382f/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0de3028d69d4cdc475bfe47a6128eb38d8bc0e8f4d69646adfbcd840facbac28", size = 1642070, upload-time = "2025-09-08T23:08:09.989Z" }, + { url = "https://files.pythonhosted.org/packages/9c/80/2df2e7977c4ede24c79ae39dcef3899bfc5f34d1ca7a5b24f182c9b7a9ca/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_i686.whl", hash = "sha256:cf44a7763aea9298c0aa7dbf859f87ed7012de8bda0f3977b6fb1d96745df856", size = 2021121, upload-time = "2025-09-08T23:08:11.907Z" }, + { url = "https://files.pythonhosted.org/packages/46/bd/2d45ad24f5f5ae7e8d01525eb76786fa7557136555cac7d929880519e33a/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f30f395a9e6fbca195400ce833c731e7b64c3919aa481af4d88c3759e0cb7496", size = 1878550, upload-time = "2025-09-08T23:08:13.513Z" }, + { url = "https://files.pythonhosted.org/packages/e6/2f/104c0a3c778d7c2ab8190e9db4f62f0b6957b53c9d87db77c284b69f33ea/pyzmq-27.1.0-cp312-abi3-win32.whl", hash = "sha256:250e5436a4ba13885494412b3da5d518cd0d3a278a1ae640e113c073a5f88edd", size = 559184, upload-time = "2025-09-08T23:08:15.163Z" }, + { url = "https://files.pythonhosted.org/packages/fc/7f/a21b20d577e4100c6a41795842028235998a643b1ad406a6d4163ea8f53e/pyzmq-27.1.0-cp312-abi3-win_amd64.whl", hash = "sha256:9ce490cf1d2ca2ad84733aa1d69ce6855372cb5ce9223802450c9b2a7cba0ccf", size = 619480, upload-time = "2025-09-08T23:08:17.192Z" }, + { url = "https://files.pythonhosted.org/packages/78/c2/c012beae5f76b72f007a9e91ee9401cb88c51d0f83c6257a03e785c81cc2/pyzmq-27.1.0-cp312-abi3-win_arm64.whl", hash = "sha256:75a2f36223f0d535a0c919e23615fc85a1e23b71f40c7eb43d7b1dedb4d8f15f", size = 552993, upload-time = "2025-09-08T23:08:18.926Z" }, + { url = "https://files.pythonhosted.org/packages/87/45/19efbb3000956e82d0331bafca5d9ac19ea2857722fa2caacefb6042f39d/pyzmq-27.1.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:ce980af330231615756acd5154f29813d553ea555485ae712c491cd483df6b7a", size = 1341197, upload-time = "2025-09-08T23:08:44.973Z" }, + { url = "https://files.pythonhosted.org/packages/48/43/d72ccdbf0d73d1343936296665826350cb1e825f92f2db9db3e61c2162a2/pyzmq-27.1.0-cp314-cp314t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1779be8c549e54a1c38f805e56d2a2e5c009d26de10921d7d51cfd1c8d4632ea", size = 897175, upload-time = "2025-09-08T23:08:46.601Z" }, + { url = "https://files.pythonhosted.org/packages/2f/2e/a483f73a10b65a9ef0161e817321d39a770b2acf8bcf3004a28d90d14a94/pyzmq-27.1.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7200bb0f03345515df50d99d3db206a0a6bee1955fbb8c453c76f5bf0e08fb96", size = 660427, upload-time = "2025-09-08T23:08:48.187Z" }, + { url = "https://files.pythonhosted.org/packages/f5/d2/5f36552c2d3e5685abe60dfa56f91169f7a2d99bbaf67c5271022ab40863/pyzmq-27.1.0-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:01c0e07d558b06a60773744ea6251f769cd79a41a97d11b8bf4ab8f034b0424d", size = 847929, upload-time = "2025-09-08T23:08:49.76Z" }, + { url = "https://files.pythonhosted.org/packages/c4/2a/404b331f2b7bf3198e9945f75c4c521f0c6a3a23b51f7a4a401b94a13833/pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:80d834abee71f65253c91540445d37c4c561e293ba6e741b992f20a105d69146", size = 1650193, upload-time = "2025-09-08T23:08:51.7Z" }, + { url = "https://files.pythonhosted.org/packages/1c/0b/f4107e33f62a5acf60e3ded67ed33d79b4ce18de432625ce2fc5093d6388/pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:544b4e3b7198dde4a62b8ff6685e9802a9a1ebf47e77478a5eb88eca2a82f2fd", size = 2024388, upload-time = "2025-09-08T23:08:53.393Z" }, + { url = "https://files.pythonhosted.org/packages/0d/01/add31fe76512642fd6e40e3a3bd21f4b47e242c8ba33efb6809e37076d9b/pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cedc4c68178e59a4046f97eca31b148ddcf51e88677de1ef4e78cf06c5376c9a", size = 1885316, upload-time = "2025-09-08T23:08:55.702Z" }, + { url = "https://files.pythonhosted.org/packages/c4/59/a5f38970f9bf07cee96128de79590bb354917914a9be11272cfc7ff26af0/pyzmq-27.1.0-cp314-cp314t-win32.whl", hash = "sha256:1f0b2a577fd770aa6f053211a55d1c47901f4d537389a034c690291485e5fe92", size = 587472, upload-time = "2025-09-08T23:08:58.18Z" }, + { url = "https://files.pythonhosted.org/packages/70/d8/78b1bad170f93fcf5e3536e70e8fadac55030002275c9a29e8f5719185de/pyzmq-27.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:19c9468ae0437f8074af379e986c5d3d7d7bfe033506af442e8c879732bedbe0", size = 661401, upload-time = "2025-09-08T23:08:59.802Z" }, + { url = "https://files.pythonhosted.org/packages/81/d6/4bfbb40c9a0b42fc53c7cf442f6385db70b40f74a783130c5d0a5aa62228/pyzmq-27.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:dc5dbf68a7857b59473f7df42650c621d7e8923fb03fa74a526890f4d33cc4d7", size = 575170, upload-time = "2025-09-08T23:09:01.418Z" }, +] + +[[package]] +name = "referencing" +version = "0.37.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/22/f5/df4e9027acead3ecc63e50fe1e36aca1523e1719559c499951bb4b53188f/referencing-0.37.0.tar.gz", hash = "sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8", size = 78036, upload-time = "2025-10-13T15:30:48.871Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl", hash = "sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231", size = 26766, upload-time = "2025-10-13T15:30:47.625Z" }, +] + +[[package]] +name = "requests" +version = "2.34.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ac/c3/e2a2b89f2d3e2179abd6d00ebd70bff6273f37fb3e0cc209f48b39d00cbf/requests-2.34.2.tar.gz", hash = "sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed", size = 142856, upload-time = "2026-05-14T19:25:27.735Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl", hash = "sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0", size = 73075, upload-time = "2026-05-14T19:25:26.443Z" }, +] + +[[package]] +name = "rfc3339-validator" +version = "0.1.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/28/ea/a9387748e2d111c3c2b275ba970b735e04e15cdb1eb30693b6b5708c4dbd/rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b", size = 5513, upload-time = "2021-05-12T16:37:54.178Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/44/4e421b96b67b2daff264473f7465db72fbdf36a07e05494f50300cc7b0c6/rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa", size = 3490, upload-time = "2021-05-12T16:37:52.536Z" }, +] + +[[package]] +name = "rfc3986-validator" +version = "0.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/da/88/f270de456dd7d11dcc808abfa291ecdd3f45ff44e3b549ffa01b126464d0/rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055", size = 6760, upload-time = "2019-10-28T16:00:19.144Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/51/17023c0f8f1869d8806b979a2bffa3f861f26a3f1a66b094288323fba52f/rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9", size = 4242, upload-time = "2019-10-28T16:00:13.976Z" }, +] + +[[package]] +name = "rfc3987-syntax" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "lark" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2c/06/37c1a5557acf449e8e406a830a05bf885ac47d33270aec454ef78675008d/rfc3987_syntax-1.1.0.tar.gz", hash = "sha256:717a62cbf33cffdd16dfa3a497d81ce48a660ea691b1ddd7be710c22f00b4a0d", size = 14239, upload-time = "2025-07-18T01:05:05.015Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/71/44ce230e1b7fadd372515a97e32a83011f906ddded8d03e3c6aafbdedbb7/rfc3987_syntax-1.1.0-py3-none-any.whl", hash = "sha256:6c3d97604e4c5ce9f714898e05401a0445a641cfa276432b0a648c80856f6a3f", size = 8046, upload-time = "2025-07-18T01:05:03.843Z" }, +] + [[package]] name = "roadmap" version = "0.1.0" source = { virtual = "." } dependencies = [ { name = "dotenv" }, + { name = "jupyter" }, + { name = "matplotlib" }, + { name = "numpy" }, + { name = "seaborn" }, ] [package.metadata] -requires-dist = [{ name = "dotenv", specifier = ">=0.9.9" }] +requires-dist = [ + { name = "dotenv", specifier = ">=0.9.9" }, + { name = "jupyter", specifier = ">=1.1.1" }, + { name = "matplotlib", specifier = ">=3.10.9" }, + { name = "numpy", specifier = ">=2.4.6" }, + { name = "seaborn", specifier = ">=0.13.2" }, +] + +[[package]] +name = "rpds-py" +version = "0.30.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/af/3f2f423103f1113b36230496629986e0ef7e199d2aa8392452b484b38ced/rpds_py-0.30.0.tar.gz", hash = "sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84", size = 69469, upload-time = "2025-11-30T20:24:38.837Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/86/81/dad16382ebbd3d0e0328776d8fd7ca94220e4fa0798d1dc5e7da48cb3201/rpds_py-0.30.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:68f19c879420aa08f61203801423f6cd5ac5f0ac4ac82a2368a9fcd6a9a075e0", size = 362099, upload-time = "2025-11-30T20:23:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/2b/60/19f7884db5d5603edf3c6bce35408f45ad3e97e10007df0e17dd57af18f8/rpds_py-0.30.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ec7c4490c672c1a0389d319b3a9cfcd098dcdc4783991553c332a15acf7249be", size = 353192, upload-time = "2025-11-30T20:23:29.151Z" }, + { url = "https://files.pythonhosted.org/packages/bf/c4/76eb0e1e72d1a9c4703c69607cec123c29028bff28ce41588792417098ac/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f251c812357a3fed308d684a5079ddfb9d933860fc6de89f2b7ab00da481e65f", size = 384080, upload-time = "2025-11-30T20:23:30.785Z" }, + { url = "https://files.pythonhosted.org/packages/72/87/87ea665e92f3298d1b26d78814721dc39ed8d2c74b86e83348d6b48a6f31/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac98b175585ecf4c0348fd7b29c3864bda53b805c773cbf7bfdaffc8070c976f", size = 394841, upload-time = "2025-11-30T20:23:32.209Z" }, + { url = "https://files.pythonhosted.org/packages/77/ad/7783a89ca0587c15dcbf139b4a8364a872a25f861bdb88ed99f9b0dec985/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3e62880792319dbeb7eb866547f2e35973289e7d5696c6e295476448f5b63c87", size = 516670, upload-time = "2025-11-30T20:23:33.742Z" }, + { url = "https://files.pythonhosted.org/packages/5b/3c/2882bdac942bd2172f3da574eab16f309ae10a3925644e969536553cb4ee/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e7fc54e0900ab35d041b0601431b0a0eb495f0851a0639b6ef90f7741b39a18", size = 408005, upload-time = "2025-11-30T20:23:35.253Z" }, + { url = "https://files.pythonhosted.org/packages/ce/81/9a91c0111ce1758c92516a3e44776920b579d9a7c09b2b06b642d4de3f0f/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47e77dc9822d3ad616c3d5759ea5631a75e5809d5a28707744ef79d7a1bcfcad", size = 382112, upload-time = "2025-11-30T20:23:36.842Z" }, + { url = "https://files.pythonhosted.org/packages/cf/8e/1da49d4a107027e5fbc64daeab96a0706361a2918da10cb41769244b805d/rpds_py-0.30.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:b4dc1a6ff022ff85ecafef7979a2c6eb423430e05f1165d6688234e62ba99a07", size = 399049, upload-time = "2025-11-30T20:23:38.343Z" }, + { url = "https://files.pythonhosted.org/packages/df/5a/7ee239b1aa48a127570ec03becbb29c9d5a9eb092febbd1699d567cae859/rpds_py-0.30.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4559c972db3a360808309e06a74628b95eaccbf961c335c8fe0d590cf587456f", size = 415661, upload-time = "2025-11-30T20:23:40.263Z" }, + { url = "https://files.pythonhosted.org/packages/70/ea/caa143cf6b772f823bc7929a45da1fa83569ee49b11d18d0ada7f5ee6fd6/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:0ed177ed9bded28f8deb6ab40c183cd1192aa0de40c12f38be4d59cd33cb5c65", size = 565606, upload-time = "2025-11-30T20:23:42.186Z" }, + { url = "https://files.pythonhosted.org/packages/64/91/ac20ba2d69303f961ad8cf55bf7dbdb4763f627291ba3d0d7d67333cced9/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:ad1fa8db769b76ea911cb4e10f049d80bf518c104f15b3edb2371cc65375c46f", size = 591126, upload-time = "2025-11-30T20:23:44.086Z" }, + { url = "https://files.pythonhosted.org/packages/21/20/7ff5f3c8b00c8a95f75985128c26ba44503fb35b8e0259d812766ea966c7/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:46e83c697b1f1c72b50e5ee5adb4353eef7406fb3f2043d64c33f20ad1c2fc53", size = 553371, upload-time = "2025-11-30T20:23:46.004Z" }, + { url = "https://files.pythonhosted.org/packages/72/c7/81dadd7b27c8ee391c132a6b192111ca58d866577ce2d9b0ca157552cce0/rpds_py-0.30.0-cp314-cp314-win32.whl", hash = "sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed", size = 215298, upload-time = "2025-11-30T20:23:47.696Z" }, + { url = "https://files.pythonhosted.org/packages/3e/d2/1aaac33287e8cfb07aab2e6b8ac1deca62f6f65411344f1433c55e6f3eb8/rpds_py-0.30.0-cp314-cp314-win_amd64.whl", hash = "sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950", size = 228604, upload-time = "2025-11-30T20:23:49.501Z" }, + { url = "https://files.pythonhosted.org/packages/e8/95/ab005315818cc519ad074cb7784dae60d939163108bd2b394e60dc7b5461/rpds_py-0.30.0-cp314-cp314-win_arm64.whl", hash = "sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6", size = 222391, upload-time = "2025-11-30T20:23:50.96Z" }, + { url = "https://files.pythonhosted.org/packages/9e/68/154fe0194d83b973cdedcdcc88947a2752411165930182ae41d983dcefa6/rpds_py-0.30.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:7e6ecfcb62edfd632e56983964e6884851786443739dbfe3582947e87274f7cb", size = 364868, upload-time = "2025-11-30T20:23:52.494Z" }, + { url = "https://files.pythonhosted.org/packages/83/69/8bbc8b07ec854d92a8b75668c24d2abcb1719ebf890f5604c61c9369a16f/rpds_py-0.30.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a1d0bc22a7cdc173fedebb73ef81e07faef93692b8c1ad3733b67e31e1b6e1b8", size = 353747, upload-time = "2025-11-30T20:23:54.036Z" }, + { url = "https://files.pythonhosted.org/packages/ab/00/ba2e50183dbd9abcce9497fa5149c62b4ff3e22d338a30d690f9af970561/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d08f00679177226c4cb8c5265012eea897c8ca3b93f429e546600c971bcbae7", size = 383795, upload-time = "2025-11-30T20:23:55.556Z" }, + { url = "https://files.pythonhosted.org/packages/05/6f/86f0272b84926bcb0e4c972262f54223e8ecc556b3224d281e6598fc9268/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5965af57d5848192c13534f90f9dd16464f3c37aaf166cc1da1cae1fd5a34898", size = 393330, upload-time = "2025-11-30T20:23:57.033Z" }, + { url = "https://files.pythonhosted.org/packages/cb/e9/0e02bb2e6dc63d212641da45df2b0bf29699d01715913e0d0f017ee29438/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a4e86e34e9ab6b667c27f3211ca48f73dba7cd3d90f8d5b11be56e5dbc3fb4e", size = 518194, upload-time = "2025-11-30T20:23:58.637Z" }, + { url = "https://files.pythonhosted.org/packages/ee/ca/be7bca14cf21513bdf9c0606aba17d1f389ea2b6987035eb4f62bd923f25/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5d3e6b26f2c785d65cc25ef1e5267ccbe1b069c5c21b8cc724efee290554419", size = 408340, upload-time = "2025-11-30T20:24:00.2Z" }, + { url = "https://files.pythonhosted.org/packages/c2/c7/736e00ebf39ed81d75544c0da6ef7b0998f8201b369acf842f9a90dc8fce/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:626a7433c34566535b6e56a1b39a7b17ba961e97ce3b80ec62e6f1312c025551", size = 383765, upload-time = "2025-11-30T20:24:01.759Z" }, + { url = "https://files.pythonhosted.org/packages/4a/3f/da50dfde9956aaf365c4adc9533b100008ed31aea635f2b8d7b627e25b49/rpds_py-0.30.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:acd7eb3f4471577b9b5a41baf02a978e8bdeb08b4b355273994f8b87032000a8", size = 396834, upload-time = "2025-11-30T20:24:03.687Z" }, + { url = "https://files.pythonhosted.org/packages/4e/00/34bcc2565b6020eab2623349efbdec810676ad571995911f1abdae62a3a0/rpds_py-0.30.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fe5fa731a1fa8a0a56b0977413f8cacac1768dad38d16b3a296712709476fbd5", size = 415470, upload-time = "2025-11-30T20:24:05.232Z" }, + { url = "https://files.pythonhosted.org/packages/8c/28/882e72b5b3e6f718d5453bd4d0d9cf8df36fddeb4ddbbab17869d5868616/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:74a3243a411126362712ee1524dfc90c650a503502f135d54d1b352bd01f2404", size = 565630, upload-time = "2025-11-30T20:24:06.878Z" }, + { url = "https://files.pythonhosted.org/packages/3b/97/04a65539c17692de5b85c6e293520fd01317fd878ea1995f0367d4532fb1/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:3e8eeb0544f2eb0d2581774be4c3410356eba189529a6b3e36bbbf9696175856", size = 591148, upload-time = "2025-11-30T20:24:08.445Z" }, + { url = "https://files.pythonhosted.org/packages/85/70/92482ccffb96f5441aab93e26c4d66489eb599efdcf96fad90c14bbfb976/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:dbd936cde57abfee19ab3213cf9c26be06d60750e60a8e4dd85d1ab12c8b1f40", size = 556030, upload-time = "2025-11-30T20:24:10.956Z" }, + { url = "https://files.pythonhosted.org/packages/20/53/7c7e784abfa500a2b6b583b147ee4bb5a2b3747a9166bab52fec4b5b5e7d/rpds_py-0.30.0-cp314-cp314t-win32.whl", hash = "sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0", size = 211570, upload-time = "2025-11-30T20:24:12.735Z" }, + { url = "https://files.pythonhosted.org/packages/d0/02/fa464cdfbe6b26e0600b62c528b72d8608f5cc49f96b8d6e38c95d60c676/rpds_py-0.30.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3", size = 226532, upload-time = "2025-11-30T20:24:14.634Z" }, +] + +[[package]] +name = "seaborn" +version = "0.13.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "matplotlib" }, + { name = "numpy" }, + { name = "pandas" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/86/59/a451d7420a77ab0b98f7affa3a1d78a313d2f7281a57afb1a34bae8ab412/seaborn-0.13.2.tar.gz", hash = "sha256:93e60a40988f4d65e9f4885df477e2fdaff6b73a9ded434c1ab356dd57eefff7", size = 1457696, upload-time = "2024-01-25T13:21:52.551Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/83/11/00d3c3dfc25ad54e731d91449895a79e4bf2384dc3ac01809010ba88f6d5/seaborn-0.13.2-py3-none-any.whl", hash = "sha256:636f8336facf092165e27924f223d3c62ca560b1f2bb5dff7ab7fad265361987", size = 294914, upload-time = "2024-01-25T13:21:49.598Z" }, +] + +[[package]] +name = "send2trash" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c5/f0/184b4b5f8d00f2a92cf96eec8967a3d550b52cf94362dad1100df9e48d57/send2trash-2.1.0.tar.gz", hash = "sha256:1c72b39f09457db3c05ce1d19158c2cbef4c32b8bedd02c155e49282b7ea7459", size = 17255, upload-time = "2026-01-14T06:27:36.056Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1c/78/504fdd027da3b84ff1aecd9f6957e65f35134534ccc6da8628eb71e76d3f/send2trash-2.1.0-py3-none-any.whl", hash = "sha256:0da2f112e6d6bb22de6aa6daa7e144831a4febf2a87261451c4ad849fe9a873c", size = 17610, upload-time = "2026-01-14T06:27:35.218Z" }, +] + +[[package]] +name = "setuptools" +version = "82.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4f/db/cfac1baf10650ab4d1c111714410d2fbb77ac5a616db26775db562c8fab2/setuptools-82.0.1.tar.gz", hash = "sha256:7d872682c5d01cfde07da7bccc7b65469d3dca203318515ada1de5eda35efbf9", size = 1152316, upload-time = "2026-03-09T12:47:17.221Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9d/76/f789f7a86709c6b087c5a2f52f911838cad707cc613162401badc665acfe/setuptools-82.0.1-py3-none-any.whl", hash = "sha256:a59e362652f08dcd477c78bb6e7bd9d80a7995bc73ce773050228a348ce2e5bb", size = 1006223, upload-time = "2026-03-09T12:47:15.026Z" }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "soupsieve" +version = "2.8.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7b/ae/2d9c981590ed9999a0d91755b47fc74f74de286b0f5cee14c9269041e6c4/soupsieve-2.8.3.tar.gz", hash = "sha256:3267f1eeea4251fb42728b6dfb746edc9acaffc4a45b27e19450b676586e8349", size = 118627, upload-time = "2026-01-20T04:27:02.457Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/46/2c/1462b1d0a634697ae9e55b3cecdcb64788e8b7d63f54d923fcd0bb140aed/soupsieve-2.8.3-py3-none-any.whl", hash = "sha256:ed64f2ba4eebeab06cc4962affce381647455978ffc1e36bb79a545b91f45a95", size = 37016, upload-time = "2026-01-20T04:27:01.012Z" }, +] + +[[package]] +name = "stack-data" +version = "0.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "asttokens" }, + { name = "executing" }, + { name = "pure-eval" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/28/e3/55dcc2cfbc3ca9c29519eb6884dd1415ecb53b0e934862d3559ddcb7e20b/stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9", size = 44707, upload-time = "2023-09-30T13:58:05.479Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521, upload-time = "2023-09-30T13:58:03.53Z" }, +] + +[[package]] +name = "terminado" +version = "0.18.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ptyprocess", marker = "os_name != 'nt'" }, + { name = "pywinpty", marker = "os_name == 'nt'" }, + { name = "tornado" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8a/11/965c6fd8e5cc254f1fe142d547387da17a8ebfd75a3455f637c663fb38a0/terminado-0.18.1.tar.gz", hash = "sha256:de09f2c4b85de4765f7714688fff57d3e75bad1f909b589fde880460c753fd2e", size = 32701, upload-time = "2024-03-12T14:34:39.026Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/9e/2064975477fdc887e47ad42157e214526dcad8f317a948dee17e1659a62f/terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0", size = 14154, upload-time = "2024-03-12T14:34:36.569Z" }, +] + +[[package]] +name = "tinycss2" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "webencodings" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7a/fd/7a5ee21fd08ff70d3d33a5781c255cbe779659bd03278feb98b19ee550f4/tinycss2-1.4.0.tar.gz", hash = "sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7", size = 87085, upload-time = "2024-10-24T14:58:29.895Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e6/34/ebdc18bae6aa14fbee1a08b63c015c72b64868ff7dae68808ab500c492e2/tinycss2-1.4.0-py3-none-any.whl", hash = "sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289", size = 26610, upload-time = "2024-10-24T14:58:28.029Z" }, +] + +[[package]] +name = "tornado" +version = "6.5.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f8/f1/3173dfa4a18db4a9b03e5d55325559dab51ee653763bb8745a75af491286/tornado-6.5.5.tar.gz", hash = "sha256:192b8f3ea91bd7f1f50c06955416ed76c6b72f96779b962f07f911b91e8d30e9", size = 516006, upload-time = "2026-03-10T21:31:02.067Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/59/8c/77f5097695f4dd8255ecbd08b2a1ed8ba8b953d337804dd7080f199e12bf/tornado-6.5.5-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:487dc9cc380e29f58c7ab88f9e27cdeef04b2140862e5076a66fb6bb68bb1bfa", size = 445983, upload-time = "2026-03-10T21:30:44.28Z" }, + { url = "https://files.pythonhosted.org/packages/ab/5e/7625b76cd10f98f1516c36ce0346de62061156352353ef2da44e5c21523c/tornado-6.5.5-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:65a7f1d46d4bb41df1ac99f5fcb685fb25c7e61613742d5108b010975a9a6521", size = 444246, upload-time = "2026-03-10T21:30:46.571Z" }, + { url = "https://files.pythonhosted.org/packages/b2/04/7b5705d5b3c0fab088f434f9c83edac1573830ca49ccf29fb83bf7178eec/tornado-6.5.5-cp39-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:e74c92e8e65086b338fd56333fb9a68b9f6f2fe7ad532645a290a464bcf46be5", size = 447229, upload-time = "2026-03-10T21:30:48.273Z" }, + { url = "https://files.pythonhosted.org/packages/34/01/74e034a30ef59afb4097ef8659515e96a39d910b712a89af76f5e4e1f93c/tornado-6.5.5-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:435319e9e340276428bbdb4e7fa732c2d399386d1de5686cb331ec8eee754f07", size = 448192, upload-time = "2026-03-10T21:30:51.22Z" }, + { url = "https://files.pythonhosted.org/packages/be/00/fe9e02c5a96429fce1a1d15a517f5d8444f9c412e0bb9eadfbe3b0fc55bf/tornado-6.5.5-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:3f54aa540bdbfee7b9eb268ead60e7d199de5021facd276819c193c0fb28ea4e", size = 448039, upload-time = "2026-03-10T21:30:53.52Z" }, + { url = "https://files.pythonhosted.org/packages/82/9e/656ee4cec0398b1d18d0f1eb6372c41c6b889722641d84948351ae19556d/tornado-6.5.5-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:36abed1754faeb80fbd6e64db2758091e1320f6bba74a4cf8c09cd18ccce8aca", size = 447445, upload-time = "2026-03-10T21:30:55.541Z" }, + { url = "https://files.pythonhosted.org/packages/5a/76/4921c00511f88af86a33de770d64141170f1cfd9c00311aea689949e274e/tornado-6.5.5-cp39-abi3-win32.whl", hash = "sha256:dd3eafaaeec1c7f2f8fdcd5f964e8907ad788fe8a5a32c4426fbbdda621223b7", size = 448582, upload-time = "2026-03-10T21:30:57.142Z" }, + { url = "https://files.pythonhosted.org/packages/2c/23/f6c6112a04d28eed765e374435fb1a9198f73e1ec4b4024184f21faeb1ad/tornado-6.5.5-cp39-abi3-win_amd64.whl", hash = "sha256:6443a794ba961a9f619b1ae926a2e900ac20c34483eea67be4ed8f1e58d3ef7b", size = 448990, upload-time = "2026-03-10T21:30:58.857Z" }, + { url = "https://files.pythonhosted.org/packages/b7/c8/876602cbc96469911f0939f703453c1157b0c826ecb05bdd32e023397d4e/tornado-6.5.5-cp39-abi3-win_arm64.whl", hash = "sha256:2c9a876e094109333f888539ddb2de4361743e5d21eece20688e3e351e4990a6", size = 448016, upload-time = "2026-03-10T21:31:00.43Z" }, +] + +[[package]] +name = "traitlets" +version = "5.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1b/22/40f55b26baeab80c2d7b3f1db0682f8954e4617fee7d90ce634022ef05c6/traitlets-5.15.0.tar.gz", hash = "sha256:4fead733f81cf1c4c938e06f8ca4633896833c9d89eff878159457f4d4392971", size = 163197, upload-time = "2026-05-06T08:05:58.016Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/da/98/a9937a969d018a23badfea0b381f66783649d48e0ea6c41923265c3cbeb3/traitlets-5.15.0-py3-none-any.whl", hash = "sha256:fb36a18867a6803deab09f3c5e0fa81bb7b26a5c9e82501c9933f759166eff40", size = 85877, upload-time = "2026-05-06T08:05:55.853Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, +] + +[[package]] +name = "tzdata" +version = "2026.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ba/19/1b9b0e29f30c6d35cb345486df41110984ea67ae69dddbc0e8a100999493/tzdata-2026.2.tar.gz", hash = "sha256:9173fde7d80d9018e02a662e168e5a2d04f87c41ea174b139fbef642eda62d10", size = 198254, upload-time = "2026-04-24T15:22:08.651Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ce/e4/dccd7f47c4b64213ac01ef921a1337ee6e30e8c6466046018326977efd95/tzdata-2026.2-py2.py3-none-any.whl", hash = "sha256:bbe9af844f658da81a5f95019480da3a89415801f6cc966806612cc7169bffe7", size = 349321, upload-time = "2026-04-24T15:22:05.876Z" }, +] + +[[package]] +name = "uri-template" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/31/c7/0336f2bd0bcbada6ccef7aaa25e443c118a704f828a0620c6fa0207c1b64/uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7", size = 21678, upload-time = "2023-06-21T01:49:05.374Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/00/3fca040d7cf8a32776d3d81a00c8ee7457e00f80c649f1e4a863c8321ae9/uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363", size = 11140, upload-time = "2023-06-21T01:49:03.467Z" }, +] + +[[package]] +name = "urllib3" +version = "2.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/53/0c/06f8b233b8fd13b9e5ee11424ef85419ba0d8ba0b3138bf360be2ff56953/urllib3-2.7.0.tar.gz", hash = "sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c", size = 433602, upload-time = "2026-05-07T16:13:18.596Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl", hash = "sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897", size = 131087, upload-time = "2026-05-07T16:13:17.151Z" }, +] + +[[package]] +name = "wcwidth" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2c/ee/afaf0f85a9a18fe47a67f1e4422ed6cf1fe642f0ae0a2f81166231303c52/wcwidth-0.7.0.tar.gz", hash = "sha256:90e3a7ea092341c44b99562e75d09e4d5160fe7a3974c6fb842a101a95e7eed0", size = 182132, upload-time = "2026-05-02T16:04:12.653Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/52/e465037f5375f43533d1a80b6923955201596a99142ed524d77b571a1418/wcwidth-0.7.0-py3-none-any.whl", hash = "sha256:5d69154c429a82910e241c738cd0e2976fac8a2dd47a1a805f4afed1c0f136f2", size = 110825, upload-time = "2026-05-02T16:04:11.033Z" }, +] + +[[package]] +name = "webcolors" +version = "25.10.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1d/7a/eb316761ec35664ea5174709a68bbd3389de60d4a1ebab8808bfc264ed67/webcolors-25.10.0.tar.gz", hash = "sha256:62abae86504f66d0f6364c2a8520de4a0c47b80c03fc3a5f1815fedbef7c19bf", size = 53491, upload-time = "2025-10-31T07:51:03.977Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e2/cc/e097523dd85c9cf5d354f78310927f1656c422bd7b2613b2db3e3f9a0f2c/webcolors-25.10.0-py3-none-any.whl", hash = "sha256:032c727334856fc0b968f63daa252a1ac93d33db2f5267756623c210e57a4f1d", size = 14905, upload-time = "2025-10-31T07:51:01.778Z" }, +] + +[[package]] +name = "webencodings" +version = "0.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0b/02/ae6ceac1baeda530866a85075641cec12989bd8d31af6d5ab4a3e8c92f47/webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923", size = 9721, upload-time = "2017-04-05T20:21:34.189Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", size = 11774, upload-time = "2017-04-05T20:21:32.581Z" }, +] + +[[package]] +name = "websocket-client" +version = "1.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2c/41/aa4bf9664e4cda14c3b39865b12251e8e7d239f4cd0e3cc1b6c2ccde25c1/websocket_client-1.9.0.tar.gz", hash = "sha256:9e813624b6eb619999a97dc7958469217c3176312b3a16a4bd1bc7e08a46ec98", size = 70576, upload-time = "2025-10-07T21:16:36.495Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/34/db/b10e48aa8fff7407e67470363eac595018441cf32d5e1001567a7aeba5d2/websocket_client-1.9.0-py3-none-any.whl", hash = "sha256:af248a825037ef591efbf6ed20cc5faa03d3b47b9e5a2230a529eeee1c1fc3ef", size = 82616, upload-time = "2025-10-07T21:16:34.951Z" }, +] + +[[package]] +name = "widgetsnbextension" +version = "4.0.15" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bd/f4/c67440c7fb409a71b7404b7aefcd7569a9c0d6bd071299bf4198ae7a5d95/widgetsnbextension-4.0.15.tar.gz", hash = "sha256:de8610639996f1567952d763a5a41af8af37f2575a41f9852a38f947eb82a3b9", size = 1097402, upload-time = "2025-11-01T21:15:55.178Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/0e/fa3b193432cfc60c93b42f3be03365f5f909d2b3ea410295cf36df739e31/widgetsnbextension-4.0.15-py3-none-any.whl", hash = "sha256:8156704e4346a571d9ce73b84bee86a29906c9abfd7223b7228a28899ccf3366", size = 2196503, upload-time = "2025-11-01T21:15:53.565Z" }, +]