diff --git a/figures/sp-fd-rust-vs-c.png b/figures/sp-fd-rust-vs-c.png index 45b2e3c..5725f26 100644 Binary files a/figures/sp-fd-rust-vs-c.png and b/figures/sp-fd-rust-vs-c.png differ diff --git a/figures/sp-fd-rust-vs-c.svg b/figures/sp-fd-rust-vs-c.svg index 3d5d4d4..fbed004 100644 --- a/figures/sp-fd-rust-vs-c.svg +++ b/figures/sp-fd-rust-vs-c.svg @@ -6,11 +6,11 @@ - 2023-03-17T21:47:50.660553 + 2023-03-18T12:14:53.082464 image/svg+xml - Matplotlib v3.7.0, https://matplotlib.org/ + Matplotlib v3.7.1, https://matplotlib.org/ @@ -41,12 +41,12 @@ z - - + @@ -91,7 +91,7 @@ z - + @@ -132,7 +132,7 @@ z - + @@ -168,7 +168,7 @@ z - + @@ -215,7 +215,7 @@ z - + @@ -271,7 +271,7 @@ z - + @@ -457,12 +457,12 @@ z - - + @@ -490,7 +490,7 @@ z - + @@ -533,7 +533,7 @@ z - + @@ -549,7 +549,7 @@ z - + @@ -565,7 +565,7 @@ z - + @@ -613,7 +613,7 @@ z - + @@ -629,7 +629,7 @@ z - + @@ -645,7 +645,7 @@ z - + @@ -822,7 +822,7 @@ L 388.649256 290.246443 L 391.928595 292.151486 L 395.207934 295.488 L 398.487273 293.708953 -" clip-path="url(#p64819cf2ed)" style="fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p070f9d73d9)" style="fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p070f9d73d9)" style="fill: none; stroke: #ff7f0e; stroke-width: 1.5; stroke-linecap: square"/> + diff --git a/notebooks/2d-3d-sp.ipynb b/notebooks/2d-3d-sp.ipynb new file mode 100644 index 0000000..aa2e8ff --- /dev/null +++ b/notebooks/2d-3d-sp.ipynb @@ -0,0 +1,158 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "from pathlib import Path\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import scipy\n", + "from glob import glob\n", + "import os\n", + "from lib.lib import read_sp, read_xyz_alt, read_xy_alt, aggregate_sp_fd" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "outputs": [], + "source": [ + "d2_raw = read_sp(\"../data/rust-sticking-probability\", read_xy_alt)\n", + "d2 = aggregate_sp_fd(d2_raw)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 59, + "outputs": [], + "source": [ + "d3_raw = read_sp(\"../data/rust-3d-offaxis-sp\", read_xyz_alt)\n", + "d3 = aggregate_sp_fd(d3_raw)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 60, + "outputs": [ + { + "data": { + "text/plain": "
", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAAGxCAYAAABvIsx7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABcVElEQVR4nO3dd3hUZd7G8e+kJ6QRICEJoZcAoXcQBEFBFMWKZREVe1jL7qqrrqurrqgvltVFXRTFXVRsFEUEkSoIikDoPfQklIT0PnPePx4IBBKSQJJJJvfnuubKzJlzzvzmCOT2OU+xWZZlISIiIuJC3JxdgIiIiEhlU8ARERERl6OAIyIiIi5HAUdERERcjgKOiIiIuBwFHBEREXE5CjgiIiLicjycXYAzOBwOEhISCAgIwGazObscERERKQfLssjIyCAiIgI3t/O30dTJgJOQkEBUVJSzyxAREZELcPDgQZo0aXLefepkwAkICADMBQoMDHRyNSIiIlIe6enpREVFFf0eP586GXBO3ZYKDAxUwBEREallytO9RJ2MRURExOUo4IiIiIjLUcARERERl1Mn++CIiIjUNHa7nYKCAmeX4XReXl5lDgEvDwUcERERJ7Isi6SkJFJTU51dSo3g5uZGixYt8PLyuqjzKOCIiIg40alwExoaip+fX52egPbURLyJiYk0bdr0oq6FAo6IiIiT2O32onDToEEDZ5dTIzRq1IiEhAQKCwvx9PS84POok7GIiIiTnOpz4+fn5+RKao5Tt6bsdvtFnUcBR0RExMnq8m2ps1XWtVDAEREREZejgCMiIiIuRwFHREREXI4CTmXLTYOkTc6uQkREpErdeeed2Gw2bDYbnp6ehIWFcfnll/PRRx/hcDgASElJ4Y9//CPt2rXD19eXpk2b8vDDD5OWllbl9SngVKakzfBKU/hkFFiWs6sRERGpUiNGjCAxMZF9+/bxww8/MGTIEB555BGuvvpqCgsLSUhIICEhgUmTJrF582amTZvG/PnzGT9+fJXXpnlwKlPDNuDmCTknIHU/1G/u7IpERKSWsSyLnIKLGyJ9IXw93Ss8gsnb25vGjRsDEBkZSffu3enbty9Dhw5l2rRp3HPPPXzzzTdF+7dq1Yp//vOf/OEPf6CwsBAPj6qLIQo4lcnDG8I6QmIcJKxXwBERkQrLKbDT4e8Lqv1zt74wHD+vi48Fl112GV26dGHmzJncc88957yflpZGYGBglYYb0C2qyhfRzfxMWO/cOkRERJwkOjqaffv2nbP9+PHjvPjii9x3331VXoNacCpbZHdY+7ECjoiIXBBfT3e2vjDcKZ9bWSzLOud2V3p6OldddRUdOnTg+eefr7TPKo0CTmUrasGJA4cDKmHJdxERqTtsNlul3Cpypm3bttGiRYui1xkZGYwYMYKAgABmzZp1UWtMlZd++1a2RtHg4QN56ZAS7+xqREREqtXixYvZtGkTN9xwA2Babq644gq8vLz49ttv8fHxqZY6andErIncPaFxJzi0xtymatja2RWJiIhUiby8PJKSkrDb7Rw5coT58+czceJErr76au64446icJOdnc306dNJT08nPT0dMKuGu7tX3m2xsyngVIWIbqcDTuebnF2NiIhIlZg/fz7h4eF4eHhQv359unTpwttvv824ceNwc3Nj3bp1/PrrrwC0bl38f/j37t1L8+bNq6w2BZyqENHd/FRHYxERcVHTpk1j2rRp591n8ODBWE6a+FZ9cKrCqY7GiRvAUf2TNYmIiNR1CjhVoWEb8KwHBVlwfKezqxEREalzFHCqgps7hHcxz3WbSkREpNop4FQVzWgsIiLiNAo4VeVUwDm8zrl1iIiI1EEKOFUl8uRIqqRNYC9wbi0iIiJ1jAJOVanfAryDwJ4HR7c5uxoREZE6RQGnqri5QYQ6GouIiDiDAk5VUkdjERERp1DAqUpFAUcdjUVExLXceeed2Gw2bDYbnp6ehIWFcfnll/PRRx/hcDiK9rv//vtp1aoVvr6+NGrUiGuvvZbt27dXeX0KOFXp1JINR7ZCQa5zaxEREalkI0aMIDExkX379vHDDz8wZMgQHnnkEa6++moKCwsB6NGjBx9//DHbtm1jwYIFWJbFFVdcgd1etTP9ay2qqhTcFHxDICcFjm6ByB7OrkhERKTSeHt707hxYwAiIyPp3r07ffv2ZejQoUybNo177rmH++67r2j/5s2b89JLL9GlSxf27dtHq1atqqw2teBUJZtN8+GIiEjFWBbkZ1X/o5IWxbzsssvo0qULM2fOPOe9rKwsPv74Y1q0aEFUVFSlfF5p1IJT1aL6wJ5FsOlr6H2vs6sREZGariAbXo6o/s99OgG86lXKqaKjo9m4cWPR63fffZcnnniCrKws2rVrx8KF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IiLichRwRERExOUo4IiIiIjLUcARERERl6OAIyIiIi5HAUdERERcjgKOiIiIuBwFHBEREXE5CjgiIiLichRwRERExOUo4IiIiIjL8XB2Ac5gWRZgll0XERGR2uHU7+1Tv8fPp04GnIyMDACioqKcXImIiIhUVEZGBkFBQefdx2aVJwa5GIfDQUJCAgEBAdhstgs+T3p6OlFRURw8eJDAwMBKrFDOpmtdvXS9q4+udfXRta4+VXWtLcsiIyODiIgI3NzO38umTrbguLm50aRJk0o7X2BgoP6yVBNd6+ql6119dK2rj6519amKa11Wy80p6mQsIiIiLkcBR0RERFyOAs5F8Pb25rnnnsPb29vZpbg8XevqpetdfXStq4+udfWpCde6TnYyFhEREdemFhwRERFxOQo4IiIi4nIUcERERMTlKOCIiIiIy1HAKcPkyZNp3rw5Pj4+9OnTh99+++28+3/11VdER0fj4+NDp06dmDdvXjVVWvtV5Fp/8MEHDBw4kPr161O/fn2GDRtW5n8bKa6if7ZPmTFjBjabjdGjR1dtgS6kotc6NTWV2NhYwsPD8fb2pm3btvq3pJwqeq3feust2rVrh6+vL1FRUTz22GPk5uZWU7W10/Llyxk1ahQRERHYbDZmz55d5jFLly6le/fueHt707p1a6ZNm1bldWJJqWbMmGF5eXlZH330kbVlyxbr3nvvtYKDg60jR46UuP/KlSstd3d367XXXrO2bt1q/e1vf7M8PT2tTZs2VXPltU9Fr/Vtt91mTZ482Vq/fr21bds2684777SCgoKsQ4cOVXPltVNFr/cpe/futSIjI62BAwda1157bfUUW8tV9Frn5eVZPXv2tEaOHGmtWLHC2rt3r7V06VIrLi6umiuvfSp6rT/99FPL29vb+vTTT629e/daCxYssMLDw63HHnusmiuvXebNm2c988wz1syZMy3AmjVr1nn3j4+Pt/z8/Kw//elP1tatW6133nnHcnd3t+bPn1+ldSrgnEfv3r2t2NjYotd2u92KiIiwJk6cWOL+N998s3XVVVcV29anTx/r/vvvr9I6XUFFr/XZCgsLrYCAAOuTTz6pqhJdyoVc78LCQqt///7Whx9+aI0bN04Bp5wqeq3fe+89q2XLllZ+fn51legyKnqtY2Njrcsuu6zYtj/96U/WgAEDqrROV1KegPPEE09YHTt2LLZtzJgx1vDhw6uwMsvSLapS5Ofns3btWoYNG1a0zc3NjWHDhrFq1aoSj1m1alWx/QGGDx9e6v5iXMi1Plt2djYFBQWEhIRUVZku40Kv9wsvvEBoaCjjx4+vjjJdwoVc62+//ZZ+/foRGxtLWFgYMTExvPzyy9jt9uoqu1a6kGvdv39/1q5dW3QbKz4+nnnz5jFy5MhqqbmucNbvxjq52GZ5HD9+HLvdTlhYWLHtYWFhbN++vcRjkpKSStw/KSmpyup0BRdyrc/25JNPEhERcc5fIjnXhVzvFStWMHXqVOLi4qqhQtdxIdc6Pj6exYsXc/vttzNv3jx2797NQw89REFBAc8991x1lF0rXci1vu222zh+/DiXXHIJlmVRWFjIAw88wNNPP10dJdcZpf1uTE9PJycnB19f3yr5XLXgSK33yiuvMGPGDGbNmoWPj4+zy3E5GRkZjB07lg8++ICGDRs6uxyX53A4CA0NZcqUKfTo0YMxY8bwzDPP8P777zu7NJezdOlSXn75Zd59913WrVvHzJkz+f7773nxxRedXZpUArXglKJhw4a4u7tz5MiRYtuPHDlC48aNSzymcePGFdpfjAu51qdMmjSJV155hZ9++onOnTtXZZkuo6LXe8+ePezbt49Ro0YVbXM4HAB4eHiwY8cOWrVqVbVF11IX8mc7PDwcT09P3N3di7a1b9+epKQk8vPz8fLyqtKaa6sLudbPPvssY8eO5Z577gGgU6dOZGVlcd999/HMM8/g5qY2gMpQ2u/GwMDAKmu9AbXglMrLy4sePXqwaNGiom0Oh4NFixbRr1+/Eo/p169fsf0BFi5cWOr+YlzItQZ47bXXePHFF5k/fz49e/asjlJdQkWvd3R0NJs2bSIuLq7occ011zBkyBDi4uKIioqqzvJrlQv5sz1gwAB2795dFCIBdu7cSXh4uMLNeVzItc7Ozj4nxJwKlpaWaaw0TvvdWKVdmGu5GTNmWN7e3ta0adOsrVu3Wvfdd58VHBxsJSUlWZZlWWPHjrX++te/Fu2/cuVKy8PDw5o0aZK1bds267nnntMw8XKq6LV+5ZVXLC8vL+vrr7+2EhMTix4ZGRnO+gq1SkWv99k0iqr8KnqtDxw4YAUEBFgTJkywduzYYc2dO9cKDQ21XnrpJWd9hVqjotf6ueeeswICAqzPP//cio+Pt3788UerVatW1s033+ysr1ArZGRkWOvXr7fWr19vAdYbb7xhrV+/3tq/f79lWZb117/+1Ro7dmzR/qeGiT/++OPWtm3brMmTJ2uYeE3wzjvvWE2bNrW8vLys3r17W6tXry5679JLL7XGjRtXbP8vv/zSatu2reXl5WV17NjR+v7776u54tqrIte6WbNmFnDO47nnnqv+wmupiv7ZPpMCTsVU9Fr/8ssvVp8+fSxvb2+rZcuW1j//+U+rsLCwmquunSpyrQsKCqznn3/eatWqleXj42NFRUVZDz30kHXixInqL7wWWbJkSYn//p66tuPGjbMuvfTSc47p2rWr5eXlZbVs2dL6+OOPq7xOm2WpHU5ERERci/rgiIiIiMtRwBERERGXo4AjIiIiLkcBR0RERFyOAo6IiIi4HAUcERERcTkKOCIiIuJyFHBERETE5SjgiIiIiMtRwBERERGXo4AjIjVWUlISNpuNf/3rX3Tr1g0fHx86duzIihUrnF2aiNRwCjgiUmPFxcUB8NFHH/HWW28RFxdH06ZNuf3223E4HM4tTkRqNAUcEamxNmzYgKenJ3PmzOHSSy8lOjqal156iQMHDnD48OESj4mPj+fbb78ter148WJef/31Uj9jzpw5PProo5Vduog4mQKOiNRYcXFxXH/99TRv3rxoW2Bg4HmP+eGHH9i6dWvR68suu4w///nPpe6/ceNGunTpctG1ikjNooAjIjVWXFwcXbt2LbZt1apVNGzYkMjISD744AO6d+9OTEwMY8aMYdmyZTz77LNMnTqVbt26kZWVxTXXXMOmTZsA2L9/P6NGjaJbt27ExMRw4MCBooCTnp7Otddey5QpU5zwTUWksnk4uwARkZLk5OSwa9cu7HZ70TaHw8Fbb73FuHHjSEtLY/LkyaxduxZ3d3dSU1MJDg6mc+fOTJs2rajVZ/v27URHR5Ofn8/IkSOZPHkygwcP5sSJE/j7+7Nt2zZ8fX258soref7557n88sud9I1FpDKpBUdEaqRNmzZhs9mYPn06q1atYtu2bYwZM4bU1FT+9re/4eHhwYkTJ3jiiSfYsmULwcHBABw4cKAo3GRkZODj44OnpyezZs2ib9++DB48GID69etTWFjI4cOHue2225gyZYrCjYgLUcARkRopLi6O6Ohonn76aW644QZ69uyJ3W5n2bJlBAcHExAQwObNm+natSs333wzs2fP5tChQ0RERBSdY8uWLXTs2BEwgal3797FPmPz5s3069cPh8OBh4catEVcif5Gi0iNtGHDBjp16sTYsWMZO3bsOe/v2rWLNm3aMHbsWFatWkVeXh779+8nPDy8aJ9NmzbRqVMnAMLCwti8eTMAdrudtLQ0Nm7cyMCBAxk+fDi33XYby5Ytw9/fv3q+oIhUKbXgiEiNFBcXR+fOnUt9/6WXXqJdu3Z069YNm83GTTfdRExMDPHx8XTq1ImtW7eyadMmYmJiALjzzjvZs2cPMTEx9OzZk507d7Jx40ZiYmLo3r07Dz30EHfffXd1fT0RqWI2y7IsZxchInImy7IICgpixowZjBw50tnliEgtpIAjIiIiLke3qERERMTlKOCIiIiIy1HAEREREZejgCMiIiIuRwFHREREXI4CjoiIiLgcBRwRERFxOQo4IiIi4nIUcERERMTlKOCIiIiIy/l/s9X8o2PkKFIAAAAASUVORK5CYII=" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(\n", + " d2.index,\n", + " d2.fd,\n", + " color='tab:blue',\n", + " label='D2'\n", + ")\n", + "\n", + "plt.plot(\n", + " d3.index,\n", + " d3.fd,\n", + " color='tab:orange',\n", + " label='D3'\n", + ")\n", + "\n", + "plt.xlabel(\"$p_{stick}$\")\n", + "plt.ylabel(\"$fd$\")\n", + "plt.legend()\n", + "\n", + "plt.savefig('../figures/sp-fd-rust-vs-c.svg')\n", + "plt.savefig('../figures/sp-fd-rust-vs-c.png')\n", + "plt.show()" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 24, + "outputs": [ + { + "data": { + "text/plain": " fd fd_std\nprobability \n0.1 NaN 0.112454\n0.2 NaN 0.116460\n0.3 NaN 0.097406\n0.4 NaN 0.107908\n0.5 NaN 0.103990\n0.6 NaN 0.098772\n0.7 NaN 0.096520\n0.8 NaN 0.093455\n0.9 NaN 0.104862\n1.0 NaN 0.091404", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
fdfd_std
probability
0.1NaN0.112454
0.2NaN0.116460
0.3NaN0.097406
0.4NaN0.107908
0.5NaN0.103990
0.6NaN0.098772
0.7NaN0.096520
0.8NaN0.093455
0.9NaN0.104862
1.0NaN0.091404
\n
" + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "d3" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 28, + "outputs": [ + { + "data": { + "text/plain": " fd fd_std\nprobability \n0.1 2.481805 0.101417\n0.2 2.372849 0.091412\n0.3 2.318823 0.090325\n0.4 2.242464 0.088371\n0.5 2.215201 0.093227\n0.6 2.174664 0.086606\n0.7 2.161655 0.080741\n0.8 2.135019 0.080976\n0.9 2.112670 0.086004\n1.0 2.103077 0.083651", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
fdfd_std
probability
0.12.4818050.101417
0.22.3728490.091412
0.32.3188230.090325
0.42.2424640.088371
0.52.2152010.093227
0.62.1746640.086606
0.72.1616550.080741
0.82.1350190.080976
0.92.1126700.086004
1.02.1030770.083651
\n
" + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "d3" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + } + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/notebooks/3d.ipynb b/notebooks/3d.ipynb index b979b48..88c25f1 100644 --- a/notebooks/3d.ipynb +++ b/notebooks/3d.ipynb @@ -246,7 +246,7 @@ "execution_count": 28, "outputs": [], "source": [ - "from notebooks.graphs import cr_n" + "from lib.graphs import cr_n" ], "metadata": { "collapsed": false @@ -335,15 +335,6 @@ "metadata": { "collapsed": false } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [], - "metadata": { - "collapsed": false - } } ], "metadata": { diff --git a/notebooks/rust-3d.py b/notebooks/rust-3d.py deleted file mode 100644 index a1267a8..0000000 --- a/notebooks/rust-3d.py +++ /dev/null @@ -1,57 +0,0 @@ -from pathlib import Path -import pandas as pd -import numpy as np -import matplotlib.pyplot as plt -import scipy -from glob import glob - - -def read_3d(path: str): - df = pd.read_csv(path, skipinitialspace=True) - df['N'] = df.index + 1 - df['r'] = (df.x ** 2 + df.y ** 2 + df.z ** 2) ** 0.5 - df['cr'] = df.r.cummax() - df['fd'] = np.log(df.N) / np.log(df.cr) - - return df - - -def read_load_dir(load_dir: str): - paths = glob(f'{load_dir}/*.csv') - return [read_3d(path) for path in paths] - - -def convergent_tail_index(series, tol): - diffs = np.abs(np.ediff1d(series)) - for i in range(0, len(diffs)): - if np.max(diffs[i:]) <= tol: - return i - - # No convergence found - return None - - -def mean_of_tail(series, tol=0.05): - tail_index = convergent_tail_index(series, tol) - if tail_index is None: - raise Exception("No convergence found.") - - return np.mean(series[tail_index:]) - - -def fd_stats(dfs): - fds = [mean_of_tail(df.fd, 0.01) for df in dfs] - fds_clean = [f for f in fds if f < np.inf] - return np.mean(fds_clean), np.std(fds_clean) - -df = read_3d("/Users/joshuacoles/Developer/checkouts/jc3091/CompB DLA/c-codebase/out-2.csv") -print(mean_of_tail(df.fd, 0.01)) - -df = read_3d("/Users/joshuacoles/Developer/checkouts/jc3091/CompB DLA/c-codebase/out-26n.csv") -print(mean_of_tail(df.fd, 0.01)) - -df = read_3d("/Users/joshuacoles/Developer/checkouts/jc3091/CompB DLA/c-codebase/out-26nn.csv") -print(mean_of_tail(df.fd, 0.01)) - -# dfs = read_load_dir("/Users/joshuacoles/Developer/checkouts/jc3091/CompB DLA/data-analysis/data/rust-3d-1/1") -# print(fd_stats(dfs)) \ No newline at end of file diff --git a/poetry.lock b/poetry.lock index adce1cb..2af59ca 100644 --- a/poetry.lock +++ b/poetry.lock @@ -438,6 +438,63 @@ files = [ {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, ] +[[package]] +name = "duckdb" +version = "0.7.1" +description = "DuckDB embedded database" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "duckdb-0.7.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3e0170be6cc315c179169dfa3e06485ef7009ef8ce399cd2908f29105ef2c67b"}, + {file = "duckdb-0.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6360d41023e726646507d5479ba60960989a09f04527b36abeef3643c61d8c48"}, + {file = "duckdb-0.7.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:578c269d7aa27184e8d45421694f89deda3f41fe6bd2a8ce48b262b9fc975326"}, + {file = "duckdb-0.7.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:36aae9a923c9f78da1cf3fcf75873f62d32ea017d4cef7c706d16d3eca527ca2"}, + {file = "duckdb-0.7.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:630e0122a02f19bb1fafae00786350b2c31ae8422fce97c827bd3686e7c386af"}, + {file = "duckdb-0.7.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:9b9ca2d294725e523ce207bc37f28787478ae6f7a223e2cf3a213a2d498596c3"}, + {file = "duckdb-0.7.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0bd89f388205b6c99b62650169efe9a02933555ee1d46ddf79fbd0fb9e62652b"}, + {file = "duckdb-0.7.1-cp310-cp310-win32.whl", hash = "sha256:a9e987565a268fd8da9f65e54621d28f39c13105b8aee34c96643074babe6d9c"}, + {file = "duckdb-0.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:5d986b5ad1307b069309f9707c0c5051323e29865aefa059eb6c3b22dc9751b6"}, + {file = "duckdb-0.7.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:54606dfd24d7181d3098030ca6858f6be52f3ccbf42fff05f7587f2d9cdf4343"}, + {file = "duckdb-0.7.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:bd9367ae650b6605ffe00412183cf0edb688a5fc9fbb03ed757e8310e7ec3b6c"}, + {file = "duckdb-0.7.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:aaf33aeb543c7816bd915cd10141866d54f92f698e1b5712de9d8b7076da19df"}, + {file = "duckdb-0.7.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e56b0329c38c0356b40449917bab6fce6ac27d356257b9a9da613d2a0f064e0"}, + {file = "duckdb-0.7.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:604b8b476d6cc6bf91625d8c2722ef9c50c402b3d64bc518c838d6c279e6d93b"}, + {file = "duckdb-0.7.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:32a268508c6d7fdc99d5442736051de74c28a5166c4cc3dcbbf35d383299b941"}, + {file = "duckdb-0.7.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:90794406fa2111414877ee9db154fef940911f3920c312c1cf69947621737c8d"}, + {file = "duckdb-0.7.1-cp311-cp311-win32.whl", hash = "sha256:bf20c5ee62cbbf10b39ebdfd70d454ce914e70545c7cb6cb78cb5befef96328a"}, + {file = "duckdb-0.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:bb2700785cab37cd1e7a76c4547a5ab0f8a7c28ad3f3e4d02a8fae52be223090"}, + {file = "duckdb-0.7.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b09741cfa31388b8f9cdf5c5200e0995d55a5b54d2d1a75b54784e2f5c042f7f"}, + {file = "duckdb-0.7.1-cp36-cp36m-win32.whl", hash = "sha256:766e6390f7ace7f1e322085c2ca5d0ad94767bde78a38d168253d2b0b4d5cd5c"}, + {file = "duckdb-0.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:6a3f3315e2b553db3463f07324f62dfebaf3b97656a87558e59e2f1f816eaf15"}, + {file = "duckdb-0.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:278edb8c912d836b3b77fd1695887e1dbd736137c3912478af3608c9d7307bb0"}, + {file = "duckdb-0.7.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e189b558d10b58fe6ed85ce79f728e143eb4115db1e63147a44db613cd4dd0d9"}, + {file = "duckdb-0.7.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b91ec3544ee4dc9e6abbdf2669475d5adedaaea51987c67acf161673e6b7443"}, + {file = "duckdb-0.7.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:3fe3f3dbd62b76a773144eef31aa29794578c359da932e77fef04516535318ca"}, + {file = "duckdb-0.7.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:1e78c7f59325e99f0b3d9fe7c2bad4aaadf42d2c7711925cc26331d7647a91b2"}, + {file = "duckdb-0.7.1-cp37-cp37m-win32.whl", hash = "sha256:bc2a12d9f4fc8ef2fd1022d610287c9fc9972ea06b7510fc87387f1fa256a390"}, + {file = "duckdb-0.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:53e3db1bc0f445ee48b23cde47bfba08c7fa5a69976c740ec8cdf89543d2405d"}, + {file = "duckdb-0.7.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:1247cc11bac17f2585d11681329806c86295e32242f84a10a604665e697d5c81"}, + {file = "duckdb-0.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5feaff16a012075b49dfa09d4cb24455938d6b0e06b08e1404ec00089119dba2"}, + {file = "duckdb-0.7.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b411a0c361eab9b26dcd0d0c7a0d1bc0ad6b214068555de7e946fbdd2619961a"}, + {file = "duckdb-0.7.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7c76d8694ecdb579241ecfeaf03c51d640b984dbbe8e1d9f919089ebf3cdea6"}, + {file = "duckdb-0.7.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:193b896eed44d8751a755ccf002a137630020af0bc3505affa21bf19fdc90df3"}, + {file = "duckdb-0.7.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:7da132ee452c80a3784b8daffd86429fa698e1b0e3ecb84660db96d36c27ad55"}, + {file = "duckdb-0.7.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5fd08c97c3e8cb5bec3822cf78b966b489213dcaab24b25c05a99f7caf8db467"}, + {file = "duckdb-0.7.1-cp38-cp38-win32.whl", hash = "sha256:9cb956f94fa55c4782352dac7cc7572a58312bd7ce97332bb14591d6059f0ea4"}, + {file = "duckdb-0.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:289a5f65213e66d320ebcd51a94787e7097b9d1c3492d01a121a2c809812bf19"}, + {file = "duckdb-0.7.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8085ad58c9b5854ee3820804fa1797e6b3134429c1506c3faab3cb96e71b07e9"}, + {file = "duckdb-0.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b47c19d1f2f662a5951fc6c5f6939d0d3b96689604b529cdcffd9afdcc95bff2"}, + {file = "duckdb-0.7.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6a611f598226fd634b7190f509cc6dd668132ffe436b0a6b43847b4b32b99e4a"}, + {file = "duckdb-0.7.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6730f03b5b78f3943b752c90bdf37b62ae3ac52302282a942cc675825b4a8dc9"}, + {file = "duckdb-0.7.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe23e938d29cd8ea6953d77dc828b7f5b95a4dbc7cd7fe5bcc3531da8cec3dba"}, + {file = "duckdb-0.7.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:feffe503c2e2a99480e1e5e15176f37796b3675e4dadad446fe7c2cc672aed3c"}, + {file = "duckdb-0.7.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:72fceb06f5bf24ad6bb5974c60d397a7a7e61b3d847507a22276de076f3392e2"}, + {file = "duckdb-0.7.1-cp39-cp39-win32.whl", hash = "sha256:c4d5217437d20d05fe23317bbc161befa1f9363f3622887cd1d2f4719b407936"}, + {file = "duckdb-0.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:066885e1883464ce3b7d1fd844f9431227dcffe1ee39bfd2a05cd6d53f304557"}, + {file = "duckdb-0.7.1.tar.gz", hash = "sha256:a7db6da0366b239ea1e4541fcc19556b286872f5015c9a54c2e347146e25a2ad"}, +] + [[package]] name = "executing" version = "1.2.0" @@ -470,18 +527,18 @@ devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benc [[package]] name = "fonttools" -version = "4.38.0" +version = "4.39.2" description = "Tools to manipulate font files" category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "fonttools-4.38.0-py3-none-any.whl", hash = "sha256:820466f43c8be8c3009aef8b87e785014133508f0de64ec469e4efb643ae54fb"}, - {file = "fonttools-4.38.0.zip", hash = "sha256:2bb244009f9bf3fa100fc3ead6aeb99febe5985fa20afbfbaa2f8946c2fbdaf1"}, + {file = "fonttools-4.39.2-py3-none-any.whl", hash = "sha256:85245aa2fd4cf502a643c9a9a2b5a393703e150a6eaacc3e0e84bb448053f061"}, + {file = "fonttools-4.39.2.zip", hash = "sha256:e2d9f10337c9e3b17f9bce17a60a16a885a7d23b59b7f45ce07ea643e5580439"}, ] [package.extras] -all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0,<5)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=14.0.0)", "xattr", "zopfli (>=0.1.4)"] +all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0,<5)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.0.0)", "xattr", "zopfli (>=0.1.4)"] graphite = ["lz4 (>=1.7.4.2)"] interpolatable = ["munkres", "scipy"] lxml = ["lxml (>=4.0,<5)"] @@ -491,7 +548,7 @@ repacker = ["uharfbuzz (>=0.23.0)"] symfont = ["sympy"] type1 = ["xattr"] ufo = ["fs (>=2.2.0,<3)"] -unicode = ["unicodedata2 (>=14.0.0)"] +unicode = ["unicodedata2 (>=15.0.0)"] woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] [[package]] @@ -520,14 +577,14 @@ files = [ [[package]] name = "ipykernel" -version = "6.21.2" +version = "6.21.3" description = "IPython Kernel for Jupyter" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "ipykernel-6.21.2-py3-none-any.whl", hash = "sha256:430d00549b6aaf49bd0f5393150691edb1815afa62d457ee6b1a66b25cb17874"}, - {file = "ipykernel-6.21.2.tar.gz", hash = "sha256:6e9213484e4ce1fb14267ee435e18f23cc3a0634e635b9fb4ed4677b84e0fdf8"}, + {file = "ipykernel-6.21.3-py3-none-any.whl", hash = "sha256:24ebd9715e317c185e37156ab3a87382410185230dde7aeffce389d6c7d4428a"}, + {file = "ipykernel-6.21.3.tar.gz", hash = "sha256:c8ff581905d70e7299bc1473a2f7c113bec1744fb3746d58e5b4b93bd8ee7001"}, ] [package.dependencies] @@ -764,14 +821,14 @@ test = ["codecov", "coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-co [[package]] name = "jupyter-console" -version = "6.6.2" +version = "6.6.3" description = "Jupyter terminal console" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "jupyter_console-6.6.2-py3-none-any.whl", hash = "sha256:0ba2da017be36bfae489f233f031f251da5b88b0ceafabea240b465ee474944a"}, - {file = "jupyter_console-6.6.2.tar.gz", hash = "sha256:7385dfed8a01fd51e3c98449dae24f38c1ba015d2073835e785671653a0967fc"}, + {file = "jupyter_console-6.6.3-py3-none-any.whl", hash = "sha256:309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485"}, + {file = "jupyter_console-6.6.3.tar.gz", hash = "sha256:566a4bf31c87adbfadf22cdf846e3069b59a71ed5da71d6ba4d8aaad14a53539"}, ] [package.dependencies] @@ -789,19 +846,19 @@ test = ["flaky", "pexpect", "pytest"] [[package]] name = "jupyter-core" -version = "5.2.0" +version = "5.3.0" description = "Jupyter core package. A base package on which Jupyter projects rely." category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_core-5.2.0-py3-none-any.whl", hash = "sha256:4bdc2928c37f6917130c667d8b8708f20aee539d8283c6be72aabd2a4b4c83b0"}, - {file = "jupyter_core-5.2.0.tar.gz", hash = "sha256:1407cdb4c79ee467696c04b76633fc1884015fa109323365a6372c8e890cc83f"}, + {file = "jupyter_core-5.3.0-py3-none-any.whl", hash = "sha256:d4201af84559bc8c70cead287e1ab94aeef3c512848dde077b7684b54d67730d"}, + {file = "jupyter_core-5.3.0.tar.gz", hash = "sha256:6db75be0c83edbf1b7c9f91ec266a9a24ef945da630f3120e1a0046dc13713fc"}, ] [package.dependencies] platformdirs = ">=2.5" -pywin32 = {version = ">=1.0", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} +pywin32 = {version = ">=300", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} traitlets = ">=5.3" [package.extras] @@ -835,14 +892,14 @@ test = ["click", "coverage", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>= [[package]] name = "jupyter-server" -version = "2.3.0" +version = "2.5.0" description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_server-2.3.0-py3-none-any.whl", hash = "sha256:b15078954120886d580e19d1746e2b62a3dc7bd082cb4716115c25fcd7061b00"}, - {file = "jupyter_server-2.3.0.tar.gz", hash = "sha256:29d6657bfb160b0e39b9030d67f33f918a188f2eba28065314a933b327fef872"}, + {file = "jupyter_server-2.5.0-py3-none-any.whl", hash = "sha256:e6bc1e9e96d7c55b9ce9699ff6cb9a910581fe7349e27c40389acb67632e24c0"}, + {file = "jupyter_server-2.5.0.tar.gz", hash = "sha256:9fde612791f716fd34d610cd939704a9639643744751ba66e7ee8fdc9cead07e"}, ] [package.dependencies] @@ -866,7 +923,7 @@ traitlets = ">=5.6.0" websocket-client = "*" [package.extras] -docs = ["docutils (<0.20)", "ipykernel", "jinja2", "jupyter-client", "jupyter-server", "mistune (<1.0.0)", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi", "sphinxcontrib-spelling", "sphinxemoji", "tornado"] +docs = ["docutils (<0.20)", "ipykernel", "jinja2", "jupyter-client", "jupyter-server", "mistune (<1.0.0)", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"] test = ["ipykernel", "pre-commit", "pytest (>=7.0)", "pytest-console-scripts", "pytest-jupyter[server] (>=0.4)", "pytest-timeout", "requests"] [[package]] @@ -1053,53 +1110,53 @@ files = [ [[package]] name = "matplotlib" -version = "3.7.0" +version = "3.7.1" description = "Python plotting package" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "matplotlib-3.7.0-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:3da8b9618188346239e51f1ea6c0f8f05c6e218cfcc30b399dd7dd7f52e8bceb"}, - {file = "matplotlib-3.7.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:c0592ba57217c22987b7322df10f75ef95bc44dce781692b4b7524085de66019"}, - {file = "matplotlib-3.7.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:21269450243d6928da81a9bed201f0909432a74e7d0d65db5545b9fa8a0d0223"}, - {file = "matplotlib-3.7.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb2e76cd429058d8954121c334dddfcd11a6186c6975bca61f3f248c99031b05"}, - {file = "matplotlib-3.7.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de20eb1247725a2f889173d391a6d9e7e0f2540feda24030748283108b0478ec"}, - {file = "matplotlib-3.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c5465735eaaafd1cfaec3fed60aee776aeb3fd3992aa2e49f4635339c931d443"}, - {file = "matplotlib-3.7.0-cp310-cp310-win32.whl", hash = "sha256:092e6abc80cdf8a95f7d1813e16c0e99ceda8d5b195a3ab859c680f3487b80a2"}, - {file = "matplotlib-3.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:4f640534ec2760e270801056bc0d8a10777c48b30966eef78a7c35d8590915ba"}, - {file = "matplotlib-3.7.0-cp311-cp311-macosx_10_12_universal2.whl", hash = "sha256:f336e7014889c38c59029ebacc35c59236a852e4b23836708cfd3f43d1eaeed5"}, - {file = "matplotlib-3.7.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:3a10428d4f8d1a478ceabd652e61a175b2fdeed4175ab48da4a7b8deb561e3fa"}, - {file = "matplotlib-3.7.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:46ca923e980f76d34c1c633343a72bb042d6ba690ecc649aababf5317997171d"}, - {file = "matplotlib-3.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c849aa94ff2a70fb71f318f48a61076d1205c6013b9d3885ade7f992093ac434"}, - {file = "matplotlib-3.7.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:827e78239292e561cfb70abf356a9d7eaf5bf6a85c97877f254009f20b892f89"}, - {file = "matplotlib-3.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:691ef1f15360e439886186d0db77b5345b24da12cbc4fc57b26c4826db4d6cab"}, - {file = "matplotlib-3.7.0-cp311-cp311-win32.whl", hash = "sha256:21a8aeac39b4a795e697265d800ce52ab59bdeb6bb23082e2d971f3041074f02"}, - {file = "matplotlib-3.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:01681566e95b9423021b49dea6a2395c16fa054604eacb87f0f4c439750f9114"}, - {file = "matplotlib-3.7.0-cp38-cp38-macosx_10_12_universal2.whl", hash = "sha256:cf119eee4e57389fba5ac8b816934e95c256535e55f0b21628b4205737d1de85"}, - {file = "matplotlib-3.7.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:21bd4033c40b95abd5b8453f036ed5aa70856e56ecbd887705c37dce007a4c21"}, - {file = "matplotlib-3.7.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:111ef351f28fd823ed7177632070a6badd6f475607122bc9002a526f2502a0b5"}, - {file = "matplotlib-3.7.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f91d35b3ef51d29d9c661069b9e4ba431ce283ffc533b981506889e144b5b40e"}, - {file = "matplotlib-3.7.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:0a776462a4a63c0bfc9df106c15a0897aa2dbab6795c693aa366e8e283958854"}, - {file = "matplotlib-3.7.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0dfd4a0cbd151f6439e6d7f8dca5292839ca311e7e650596d073774847ca2e4f"}, - {file = "matplotlib-3.7.0-cp38-cp38-win32.whl", hash = "sha256:56b7b79488209041a9bf7ddc34f1b069274489ce69e34dc63ae241d0d6b4b736"}, - {file = "matplotlib-3.7.0-cp38-cp38-win_amd64.whl", hash = "sha256:8665855f3919c80551f377bc16df618ceabf3ef65270bc14b60302dce88ca9ab"}, - {file = "matplotlib-3.7.0-cp39-cp39-macosx_10_12_universal2.whl", hash = "sha256:f910d924da8b9fb066b5beae0b85e34ed1b6293014892baadcf2a51da1c65807"}, - {file = "matplotlib-3.7.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:cf6346644e8fe234dc847e6232145dac199a650d3d8025b3ef65107221584ba4"}, - {file = "matplotlib-3.7.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3d1e52365d8d5af699f04581ca191112e1d1220a9ce4386b57d807124d8b55e6"}, - {file = "matplotlib-3.7.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c869b646489c6a94375714032e5cec08e3aa8d3f7d4e8ef2b0fb50a52b317ce6"}, - {file = "matplotlib-3.7.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f4ddac5f59e78d04b20469bc43853a8e619bb6505c7eac8ffb343ff2c516d72f"}, - {file = "matplotlib-3.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fb0304c1cd802e9a25743414c887e8a7cd51d96c9ec96d388625d2cd1c137ae3"}, - {file = "matplotlib-3.7.0-cp39-cp39-win32.whl", hash = "sha256:a06a6c9822e80f323549c6bc9da96d4f233178212ad9a5f4ab87fd153077a507"}, - {file = "matplotlib-3.7.0-cp39-cp39-win_amd64.whl", hash = "sha256:cb52aa97b92acdee090edfb65d1cb84ea60ab38e871ba8321a10bbcebc2a3540"}, - {file = "matplotlib-3.7.0-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3493b48e56468c39bd9c1532566dff3b8062952721b7521e1f394eb6791495f4"}, - {file = "matplotlib-3.7.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7d0dcd1a0bf8d56551e8617d6dc3881d8a1c7fb37d14e5ec12cbb293f3e6170a"}, - {file = "matplotlib-3.7.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51fb664c37714cbaac69c16d6b3719f517a13c96c3f76f4caadd5a0aa7ed0329"}, - {file = "matplotlib-3.7.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:4497d88c559b76da320b7759d64db442178beeea06a52dc0c629086982082dcd"}, - {file = "matplotlib-3.7.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:9d85355c48ef8b9994293eb7c00f44aa8a43cad7a297fbf0770a25cdb2244b91"}, - {file = "matplotlib-3.7.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:03eb2c8ff8d85da679b71e14c7c95d16d014c48e0c0bfa14db85f6cdc5c92aad"}, - {file = "matplotlib-3.7.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:71b751d06b2ed1fd017de512d7439c0259822864ea16731522b251a27c0b2ede"}, - {file = "matplotlib-3.7.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:b51ab8a5d5d3bbd4527af633a638325f492e09e45e78afdf816ef55217a09664"}, - {file = "matplotlib-3.7.0.tar.gz", hash = "sha256:8f6efd313430d7ef70a38a3276281cb2e8646b3a22b3b21eb227da20e15e6813"}, + {file = "matplotlib-3.7.1-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:95cbc13c1fc6844ab8812a525bbc237fa1470863ff3dace7352e910519e194b1"}, + {file = "matplotlib-3.7.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:08308bae9e91aca1ec6fd6dda66237eef9f6294ddb17f0d0b3c863169bf82353"}, + {file = "matplotlib-3.7.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:544764ba51900da4639c0f983b323d288f94f65f4024dc40ecb1542d74dc0500"}, + {file = "matplotlib-3.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56d94989191de3fcc4e002f93f7f1be5da476385dde410ddafbb70686acf00ea"}, + {file = "matplotlib-3.7.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e99bc9e65901bb9a7ce5e7bb24af03675cbd7c70b30ac670aa263240635999a4"}, + {file = "matplotlib-3.7.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb7d248c34a341cd4c31a06fd34d64306624c8cd8d0def7abb08792a5abfd556"}, + {file = "matplotlib-3.7.1-cp310-cp310-win32.whl", hash = "sha256:ce463ce590f3825b52e9fe5c19a3c6a69fd7675a39d589e8b5fbe772272b3a24"}, + {file = "matplotlib-3.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:3d7bc90727351fb841e4d8ae620d2d86d8ed92b50473cd2b42ce9186104ecbba"}, + {file = "matplotlib-3.7.1-cp311-cp311-macosx_10_12_universal2.whl", hash = "sha256:770a205966d641627fd5cf9d3cb4b6280a716522cd36b8b284a8eb1581310f61"}, + {file = "matplotlib-3.7.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:f67bfdb83a8232cb7a92b869f9355d677bce24485c460b19d01970b64b2ed476"}, + {file = "matplotlib-3.7.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2bf092f9210e105f414a043b92af583c98f50050559616930d884387d0772aba"}, + {file = "matplotlib-3.7.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89768d84187f31717349c6bfadc0e0d8c321e8eb34522acec8a67b1236a66332"}, + {file = "matplotlib-3.7.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:83111e6388dec67822e2534e13b243cc644c7494a4bb60584edbff91585a83c6"}, + {file = "matplotlib-3.7.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a867bf73a7eb808ef2afbca03bcdb785dae09595fbe550e1bab0cd023eba3de0"}, + {file = "matplotlib-3.7.1-cp311-cp311-win32.whl", hash = "sha256:fbdeeb58c0cf0595efe89c05c224e0a502d1aa6a8696e68a73c3efc6bc354304"}, + {file = "matplotlib-3.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:c0bd19c72ae53e6ab979f0ac6a3fafceb02d2ecafa023c5cca47acd934d10be7"}, + {file = "matplotlib-3.7.1-cp38-cp38-macosx_10_12_universal2.whl", hash = "sha256:6eb88d87cb2c49af00d3bbc33a003f89fd9f78d318848da029383bfc08ecfbfb"}, + {file = "matplotlib-3.7.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:cf0e4f727534b7b1457898c4f4ae838af1ef87c359b76dcd5330fa31893a3ac7"}, + {file = "matplotlib-3.7.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:46a561d23b91f30bccfd25429c3c706afe7d73a5cc64ef2dfaf2b2ac47c1a5dc"}, + {file = "matplotlib-3.7.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8704726d33e9aa8a6d5215044b8d00804561971163563e6e6591f9dcf64340cc"}, + {file = "matplotlib-3.7.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4cf327e98ecf08fcbb82685acaf1939d3338548620ab8dfa02828706402c34de"}, + {file = "matplotlib-3.7.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:617f14ae9d53292ece33f45cba8503494ee199a75b44de7717964f70637a36aa"}, + {file = "matplotlib-3.7.1-cp38-cp38-win32.whl", hash = "sha256:7c9a4b2da6fac77bcc41b1ea95fadb314e92508bf5493ceff058e727e7ecf5b0"}, + {file = "matplotlib-3.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:14645aad967684e92fc349493fa10c08a6da514b3d03a5931a1bac26e6792bd1"}, + {file = "matplotlib-3.7.1-cp39-cp39-macosx_10_12_universal2.whl", hash = "sha256:81a6b377ea444336538638d31fdb39af6be1a043ca5e343fe18d0f17e098770b"}, + {file = "matplotlib-3.7.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:28506a03bd7f3fe59cd3cd4ceb2a8d8a2b1db41afede01f66c42561b9be7b4b7"}, + {file = "matplotlib-3.7.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8c587963b85ce41e0a8af53b9b2de8dddbf5ece4c34553f7bd9d066148dc719c"}, + {file = "matplotlib-3.7.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8bf26ade3ff0f27668989d98c8435ce9327d24cffb7f07d24ef609e33d582439"}, + {file = "matplotlib-3.7.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:def58098f96a05f90af7e92fd127d21a287068202aa43b2a93476170ebd99e87"}, + {file = "matplotlib-3.7.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f883a22a56a84dba3b588696a2b8a1ab0d2c3d41be53264115c71b0a942d8fdb"}, + {file = "matplotlib-3.7.1-cp39-cp39-win32.whl", hash = "sha256:4f99e1b234c30c1e9714610eb0c6d2f11809c9c78c984a613ae539ea2ad2eb4b"}, + {file = "matplotlib-3.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:3ba2af245e36990facf67fde840a760128ddd71210b2ab6406e640188d69d136"}, + {file = "matplotlib-3.7.1-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3032884084f541163f295db8a6536e0abb0db464008fadca6c98aaf84ccf4717"}, + {file = "matplotlib-3.7.1-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a2cb34336110e0ed8bb4f650e817eed61fa064acbefeb3591f1b33e3a84fd96"}, + {file = "matplotlib-3.7.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b867e2f952ed592237a1828f027d332d8ee219ad722345b79a001f49df0936eb"}, + {file = "matplotlib-3.7.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:57bfb8c8ea253be947ccb2bc2d1bb3862c2bccc662ad1b4626e1f5e004557042"}, + {file = "matplotlib-3.7.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:438196cdf5dc8d39b50a45cb6e3f6274edbcf2254f85fa9b895bf85851c3a613"}, + {file = "matplotlib-3.7.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:21e9cff1a58d42e74d01153360de92b326708fb205250150018a52c70f43c290"}, + {file = "matplotlib-3.7.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75d4725d70b7c03e082bbb8a34639ede17f333d7247f56caceb3801cb6ff703d"}, + {file = "matplotlib-3.7.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:97cc368a7268141afb5690760921765ed34867ffb9655dd325ed207af85c7529"}, + {file = "matplotlib-3.7.1.tar.gz", hash = "sha256:7b73305f25eab4541bd7ee0b96d87e53ae9c9f1823be5659b806cd85786fe882"}, ] [package.dependencies] @@ -1142,14 +1199,14 @@ files = [ [[package]] name = "nbclassic" -version = "0.5.2" +version = "0.5.3" description = "Jupyter Notebook as a Jupyter Server extension." category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "nbclassic-0.5.2-py3-none-any.whl", hash = "sha256:6403a996562dadefa7fee9c49e17b663b5fd508241de5df655b90011cf3342d9"}, - {file = "nbclassic-0.5.2.tar.gz", hash = "sha256:40f11bbcc59e8956c3d5ef132dec8e5a853e893ecf831e791d54da0d8a50d79d"}, + {file = "nbclassic-0.5.3-py3-none-any.whl", hash = "sha256:e849277872d9ffd8fe4b39a8038d01ba82d6a1def9ce11b1b3c26c9546ed5131"}, + {file = "nbclassic-0.5.3.tar.gz", hash = "sha256:889772a7ba524eb781d2901f396540bcad41151e1f7e043f12ebc14a6540d342"}, ] [package.dependencies] @@ -1201,14 +1258,14 @@ test = ["ipykernel", "ipython", "ipywidgets", "nbconvert (>=7.0.0)", "pytest (>= [[package]] name = "nbconvert" -version = "7.2.9" +version = "7.2.10" description = "Converting Jupyter Notebooks" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "nbconvert-7.2.9-py3-none-any.whl", hash = "sha256:495638c5e06005f4a5ce828d8a81d28e34f95c20f4384d5d7a22254b443836e7"}, - {file = "nbconvert-7.2.9.tar.gz", hash = "sha256:a42c3ac137c64f70cbe4d763111bf358641ea53b37a01a5c202ed86374af5234"}, + {file = "nbconvert-7.2.10-py3-none-any.whl", hash = "sha256:e41118f81698d3d59b3c7c2887937446048f741aba6c367c1c1a77810b3e2d08"}, + {file = "nbconvert-7.2.10.tar.gz", hash = "sha256:8eed67bd8314f3ec87c4351c2f674af3a04e5890ab905d6bd927c05aec1cf27d"}, ] [package.dependencies] @@ -1273,14 +1330,14 @@ files = [ [[package]] name = "notebook" -version = "6.5.2" +version = "6.5.3" description = "A web-based notebook environment for interactive computing" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "notebook-6.5.2-py3-none-any.whl", hash = "sha256:e04f9018ceb86e4fa841e92ea8fb214f8d23c1cedfde530cc96f92446924f0e4"}, - {file = "notebook-6.5.2.tar.gz", hash = "sha256:c1897e5317e225fc78b45549a6ab4b668e4c996fd03a04e938fe5e7af2bfffd0"}, + {file = "notebook-6.5.3-py3-none-any.whl", hash = "sha256:50a334ad9d60b30cb759405168ef6fc3d60350ab5439fb1631544bb09dcb2cce"}, + {file = "notebook-6.5.3.tar.gz", hash = "sha256:b12bee3292211d85dd7e588a790ddce30cb3e8fbcfa1e803522a207f60819e05"}, ] [package.dependencies] @@ -1567,14 +1624,14 @@ tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "pa [[package]] name = "platformdirs" -version = "3.0.0" +version = "3.1.1" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "platformdirs-3.0.0-py3-none-any.whl", hash = "sha256:b1d5eb14f221506f50d6604a561f4c5786d9e80355219694a1b244bcd96f4567"}, - {file = "platformdirs-3.0.0.tar.gz", hash = "sha256:8a1228abb1ef82d788f74139988b137e78692984ec7b08eaa6c65f1723af28f9"}, + {file = "platformdirs-3.1.1-py3-none-any.whl", hash = "sha256:e5986afb596e4bb5bde29a79ac9061aa955b94fca2399b7aaac4090860920dd8"}, + {file = "platformdirs-3.1.1.tar.gz", hash = "sha256:024996549ee88ec1a9aa99ff7f8fc819bb59e2c3477b410d90a16d32d6e707aa"}, ] [package.extras] @@ -1665,6 +1722,44 @@ files = [ [package.extras] tests = ["pytest"] +[[package]] +name = "pyarrow" +version = "11.0.0" +description = "Python library for Apache Arrow" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pyarrow-11.0.0-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:40bb42afa1053c35c749befbe72f6429b7b5f45710e85059cdd534553ebcf4f2"}, + {file = "pyarrow-11.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7c28b5f248e08dea3b3e0c828b91945f431f4202f1a9fe84d1012a761324e1ba"}, + {file = "pyarrow-11.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a37bc81f6c9435da3c9c1e767324ac3064ffbe110c4e460660c43e144be4ed85"}, + {file = "pyarrow-11.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad7c53def8dbbc810282ad308cc46a523ec81e653e60a91c609c2233ae407689"}, + {file = "pyarrow-11.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:25aa11c443b934078bfd60ed63e4e2d42461682b5ac10f67275ea21e60e6042c"}, + {file = "pyarrow-11.0.0-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:e217d001e6389b20a6759392a5ec49d670757af80101ee6b5f2c8ff0172e02ca"}, + {file = "pyarrow-11.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ad42bb24fc44c48f74f0d8c72a9af16ba9a01a2ccda5739a517aa860fa7e3d56"}, + {file = "pyarrow-11.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d942c690ff24a08b07cb3df818f542a90e4d359381fbff71b8f2aea5bf58841"}, + {file = "pyarrow-11.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f010ce497ca1b0f17a8243df3048055c0d18dcadbcc70895d5baf8921f753de5"}, + {file = "pyarrow-11.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:2f51dc7ca940fdf17893227edb46b6784d37522ce08d21afc56466898cb213b2"}, + {file = "pyarrow-11.0.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:1cbcfcbb0e74b4d94f0b7dde447b835a01bc1d16510edb8bb7d6224b9bf5bafc"}, + {file = "pyarrow-11.0.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaee8f79d2a120bf3e032d6d64ad20b3af6f56241b0ffc38d201aebfee879d00"}, + {file = "pyarrow-11.0.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:410624da0708c37e6a27eba321a72f29d277091c8f8d23f72c92bada4092eb5e"}, + {file = "pyarrow-11.0.0-cp37-cp37m-win_amd64.whl", hash = "sha256:2d53ba72917fdb71e3584ffc23ee4fcc487218f8ff29dd6df3a34c5c48fe8c06"}, + {file = "pyarrow-11.0.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:f12932e5a6feb5c58192209af1d2607d488cb1d404fbc038ac12ada60327fa34"}, + {file = "pyarrow-11.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:41a1451dd895c0b2964b83d91019e46f15b5564c7ecd5dcb812dadd3f05acc97"}, + {file = "pyarrow-11.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:becc2344be80e5dce4e1b80b7c650d2fc2061b9eb339045035a1baa34d5b8f1c"}, + {file = "pyarrow-11.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f40be0d7381112a398b93c45a7e69f60261e7b0269cc324e9f739ce272f4f70"}, + {file = "pyarrow-11.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:362a7c881b32dc6b0eccf83411a97acba2774c10edcec715ccaab5ebf3bb0835"}, + {file = "pyarrow-11.0.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:ccbf29a0dadfcdd97632b4f7cca20a966bb552853ba254e874c66934931b9841"}, + {file = "pyarrow-11.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3e99be85973592051e46412accea31828da324531a060bd4585046a74ba45854"}, + {file = "pyarrow-11.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69309be84dcc36422574d19c7d3a30a7ea43804f12552356d1ab2a82a713c418"}, + {file = "pyarrow-11.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da93340fbf6f4e2a62815064383605b7ffa3e9eeb320ec839995b1660d69f89b"}, + {file = "pyarrow-11.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:caad867121f182d0d3e1a0d36f197df604655d0b466f1bc9bafa903aa95083e4"}, + {file = "pyarrow-11.0.0.tar.gz", hash = "sha256:5461c57dbdb211a632a48facb9b39bbeb8a7905ec95d768078525283caef5f6d"}, +] + +[package.dependencies] +numpy = ">=1.16.6" + [[package]] name = "pycparser" version = "2.21" @@ -1875,89 +1970,89 @@ files = [ [[package]] name = "pyzmq" -version = "25.0.0" +version = "25.0.1" description = "Python bindings for 0MQ" category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "pyzmq-25.0.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:2d05d904f03ddf1e0d83d97341354dfe52244a619b5a1440a5f47a5b3451e84e"}, - {file = "pyzmq-25.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a154ef810d44f9d28868be04641f837374a64e7449df98d9208e76c260c7ef1"}, - {file = "pyzmq-25.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:487305c2a011fdcf3db1f24e8814bb76d23bc4d2f46e145bc80316a59a9aa07d"}, - {file = "pyzmq-25.0.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e7b87638ee30ab13230e37ce5331b3e730b1e0dda30120b9eeec3540ed292c8"}, - {file = "pyzmq-25.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75243e422e85a62f0ab7953dc315452a56b2c6a7e7d1a3c3109ac3cc57ed6b47"}, - {file = "pyzmq-25.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:31e523d067ce44a04e876bed3ff9ea1ff8d1b6636d16e5fcace9d22f8c564369"}, - {file = "pyzmq-25.0.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8539216173135e9e89f6b1cc392e74e6b935b91e8c76106cf50e7a02ab02efe5"}, - {file = "pyzmq-25.0.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:2754fa68da08a854f4816e05160137fa938a2347276471103d31e04bcee5365c"}, - {file = "pyzmq-25.0.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4a1bc30f0c18444d51e9b0d0dd39e3a4e7c53ee74190bebef238cd58de577ea9"}, - {file = "pyzmq-25.0.0-cp310-cp310-win32.whl", hash = "sha256:01d53958c787cfea34091fcb8ef36003dbb7913b8e9f8f62a0715234ebc98b70"}, - {file = "pyzmq-25.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:58fc3ad5e1cfd2e6d24741fbb1e216b388115d31b0ca6670f894187f280b6ba6"}, - {file = "pyzmq-25.0.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:e4bba04ea779a3d7ef25a821bb63fd0939142c88e7813e5bd9c6265a20c523a2"}, - {file = "pyzmq-25.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:af1fbfb7ad6ac0009ccee33c90a1d303431c7fb594335eb97760988727a37577"}, - {file = "pyzmq-25.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85456f0d8f3268eecd63dede3b99d5bd8d3b306310c37d4c15141111d22baeaf"}, - {file = "pyzmq-25.0.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0645b5a2d2a06fd8eb738018490c514907f7488bf9359c6ee9d92f62e844b76f"}, - {file = "pyzmq-25.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f72ea279b2941a5203e935a4588b9ba8a48aeb9a926d9dfa1986278bd362cb8"}, - {file = "pyzmq-25.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:4e295f7928a31ae0f657e848c5045ba6d693fe8921205f408ca3804b1b236968"}, - {file = "pyzmq-25.0.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ac97e7d647d5519bcef48dd8d3d331f72975afa5c4496c95f6e854686f45e2d9"}, - {file = "pyzmq-25.0.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:656281d496aaf9ca4fd4cea84e6d893e3361057c4707bd38618f7e811759103c"}, - {file = "pyzmq-25.0.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1f6116991568aac48b94d6d8aaed6157d407942ea385335a6ed313692777fb9d"}, - {file = "pyzmq-25.0.0-cp311-cp311-win32.whl", hash = "sha256:0282bba9aee6e0346aa27d6c69b5f7df72b5a964c91958fc9e0c62dcae5fdcdc"}, - {file = "pyzmq-25.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:526f884a27e8bba62fe1f4e07c62be2cfe492b6d432a8fdc4210397f8cf15331"}, - {file = "pyzmq-25.0.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:ccb3e1a863222afdbda42b7ca8ac8569959593d7abd44f5a709177d6fa27d266"}, - {file = "pyzmq-25.0.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4046d03100aca266e70d54a35694cb35d6654cfbef633e848b3c4a8d64b9d187"}, - {file = "pyzmq-25.0.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3100dddcada66ec5940ed6391ebf9d003cc3ede3d320748b2737553019f58230"}, - {file = "pyzmq-25.0.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:7877264aa851c19404b1bb9dbe6eed21ea0c13698be1eda3784aab3036d1c861"}, - {file = "pyzmq-25.0.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:5049e75cc99db65754a3da5f079230fb8889230cf09462ec972d884d1704a3ed"}, - {file = "pyzmq-25.0.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:81f99fb1224d36eb91557afec8cdc2264e856f3464500b55749020ce4c848ef2"}, - {file = "pyzmq-25.0.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:a1cd4a95f176cdc0ee0a82d49d5830f13ae6015d89decbf834c273bc33eeb3d3"}, - {file = "pyzmq-25.0.0-cp36-cp36m-win32.whl", hash = "sha256:926236ca003aec70574754f39703528947211a406f5c6c8b3e50eca04a9e87fc"}, - {file = "pyzmq-25.0.0-cp36-cp36m-win_amd64.whl", hash = "sha256:94f0a7289d0f5c80807c37ebb404205e7deb737e8763eb176f4770839ee2a287"}, - {file = "pyzmq-25.0.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:f3f96d452e9580cb961ece2e5a788e64abaecb1232a80e61deffb28e105ff84a"}, - {file = "pyzmq-25.0.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:930e6ad4f2eaac31a3d0c2130619d25db754b267487ebc186c6ad18af2a74018"}, - {file = "pyzmq-25.0.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e1081d7030a1229c8ff90120346fb7599b54f552e98fcea5170544e7c6725aab"}, - {file = "pyzmq-25.0.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:531866c491aee5a1e967c286cfa470dffac1e2a203b1afda52d62b58782651e9"}, - {file = "pyzmq-25.0.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:fc7c1421c5b1c916acf3128bf3cc7ea7f5018b58c69a6866d70c14190e600ce9"}, - {file = "pyzmq-25.0.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:9a2d5e419bd39a1edb6cdd326d831f0120ddb9b1ff397e7d73541bf393294973"}, - {file = "pyzmq-25.0.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:183e18742be3621acf8908903f689ec520aee3f08449bfd29f583010ca33022b"}, - {file = "pyzmq-25.0.0-cp37-cp37m-win32.whl", hash = "sha256:02f5cb60a7da1edd5591a15efa654ffe2303297a41e1b40c3c8942f8f11fc17c"}, - {file = "pyzmq-25.0.0-cp37-cp37m-win_amd64.whl", hash = "sha256:cac602e02341eaaf4edfd3e29bd3fdef672e61d4e6dfe5c1d065172aee00acee"}, - {file = "pyzmq-25.0.0-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:e14df47c1265356715d3d66e90282a645ebc077b70b3806cf47efcb7d1d630cb"}, - {file = "pyzmq-25.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:293a7c2128690f496057f1f1eb6074f8746058d13588389981089ec45d8fdc77"}, - {file = "pyzmq-25.0.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:731b208bc9412deeb553c9519dca47136b5a01ca66667cafd8733211941b17e4"}, - {file = "pyzmq-25.0.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b055a1cddf8035966ad13aa51edae5dc8f1bba0b5d5e06f7a843d8b83dc9b66b"}, - {file = "pyzmq-25.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:17e1cb97d573ea84d7cd97188b42ca6f611ab3ee600f6a75041294ede58e3d20"}, - {file = "pyzmq-25.0.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:60ecbfe7669d3808ffa8a7dd1487d6eb8a4015b07235e3b723d4b2a2d4de7203"}, - {file = "pyzmq-25.0.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4c25c95416133942280faaf068d0fddfd642b927fb28aaf4ab201a738e597c1e"}, - {file = "pyzmq-25.0.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:be05504af0619d1cffa500af1e0ede69fb683f301003851f5993b5247cc2c576"}, - {file = "pyzmq-25.0.0-cp38-cp38-win32.whl", hash = "sha256:6bf3842af37af43fa953e96074ebbb5315f6a297198f805d019d788a1021dbc8"}, - {file = "pyzmq-25.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:b90bb8dfbbd138558f1f284fecfe328f7653616ff9a972433a00711d9475d1a9"}, - {file = "pyzmq-25.0.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:62b9e80890c0d2408eb42d5d7e1fc62a5ce71be3288684788f74cf3e59ffd6e2"}, - {file = "pyzmq-25.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:484c2c4ee02c1edc07039f42130bd16e804b1fe81c4f428e0042e03967f40c20"}, - {file = "pyzmq-25.0.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9ca6db34b26c4d3e9b0728841ec9aa39484eee272caa97972ec8c8e231b20c7e"}, - {file = "pyzmq-25.0.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:610d2d112acd4e5501fac31010064a6c6efd716ceb968e443cae0059eb7b86de"}, - {file = "pyzmq-25.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3594c0ff604e685d7e907860b61d0e10e46c74a9ffca168f6e9e50ea934ee440"}, - {file = "pyzmq-25.0.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c21a5f4e54a807df5afdef52b6d24ec1580153a6bcf0607f70a6e1d9fa74c5c3"}, - {file = "pyzmq-25.0.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:4725412e27612f0d7d7c2f794d89807ad0227c2fc01dd6146b39ada49c748ef9"}, - {file = "pyzmq-25.0.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4d3d604fe0a67afd1aff906e54da557a5203368a99dcc50a70eef374f1d2abef"}, - {file = "pyzmq-25.0.0-cp39-cp39-win32.whl", hash = "sha256:3670e8c5644768f214a3b598fe46378a4a6f096d5fb82a67dfd3440028460565"}, - {file = "pyzmq-25.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:e99629a976809fe102ef73e856cf4b2660acd82a412a51e80ba2215e523dfd0a"}, - {file = "pyzmq-25.0.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:66509c48f7446b640eeae24b60c9c1461799a27b1b0754e438582e36b5af3315"}, - {file = "pyzmq-25.0.0-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:a9c464cc508177c09a5a6122b67f978f20e2954a21362bf095a0da4647e3e908"}, - {file = "pyzmq-25.0.0-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:28bcb2e66224a7ac2843eb632e4109d6b161479e7a2baf24e37210461485b4f1"}, - {file = "pyzmq-25.0.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0e7ef9ac807db50b4eb6f534c5dcc22f998f5dae920cc28873d2c1d080a4fc9"}, - {file = "pyzmq-25.0.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:5050f5c50b58a6e38ccaf9263a356f74ef1040f5ca4030225d1cb1a858c5b7b6"}, - {file = "pyzmq-25.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2a73af6504e0d2805e926abf136ebf536735a13c22f709be7113c2ec65b4bec3"}, - {file = "pyzmq-25.0.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0e8d00228db627ddd1b418c7afd81820b38575f237128c9650365f2dd6ac3443"}, - {file = "pyzmq-25.0.0-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5605621f2181f20b71f13f698944deb26a0a71af4aaf435b34dd90146092d530"}, - {file = "pyzmq-25.0.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6136bfb0e5a9cf8c60c6ac763eb21f82940a77e6758ea53516c8c7074f4ff948"}, - {file = "pyzmq-25.0.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:0a90b2480a26aef7c13cff18703ba8d68e181facb40f78873df79e6d42c1facc"}, - {file = "pyzmq-25.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:00c94fd4c9dd3c95aace0c629a7fa713627a5c80c1819326b642adf6c4b8e2a2"}, - {file = "pyzmq-25.0.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20638121b0bdc80777ce0ec8c1f14f1ffec0697a1f88f0b564fa4a23078791c4"}, - {file = "pyzmq-25.0.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b6f75b4b8574f3a8a0d6b4b52606fc75b82cb4391471be48ab0b8677c82f9ed4"}, - {file = "pyzmq-25.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cbb885f347eba7ab7681c450dee5b14aed9f153eec224ec0c3f299273d9241f"}, - {file = "pyzmq-25.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c48f257da280b3be6c94e05bd575eddb1373419dbb1a72c3ce64e88f29d1cd6d"}, - {file = "pyzmq-25.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:866eabf7c1315ef2e93e34230db7cbf672e0d7c626b37c11f7e870c8612c3dcc"}, - {file = "pyzmq-25.0.0.tar.gz", hash = "sha256:f330a1a2c7f89fd4b0aa4dcb7bf50243bf1c8da9a2f1efc31daf57a2046b31f2"}, + {file = "pyzmq-25.0.1-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:94f65e13e6df035b0ae90d49adfe7891aa4e7bdeaa65265729fecc04ab3eb0fe"}, + {file = "pyzmq-25.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f0399450d970990705ce47ed65f5efed3e4627dfc80628c3798100e7b72e023b"}, + {file = "pyzmq-25.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f29709b0431668a967d7ff0394b00a865e7b7dde827ee0a47938b705b7c4aec3"}, + {file = "pyzmq-25.0.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4fee9420b34c0ab426f105926a701a3d73f878fe77f07a1b92e0b78d1e2c795c"}, + {file = "pyzmq-25.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:57be375c6bc66b0f685cd298e5c1c3d7ee34a254145b8087aed6e25db372b0f3"}, + {file = "pyzmq-25.0.1-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a3309b2c5a5be3d48c9ade77b340361764449aa22854ac65935b1e6c0cdabe2c"}, + {file = "pyzmq-25.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:7574d24579e83ee8c5d3b14769e7ba895161c43a601e911dd89d449e545e00ad"}, + {file = "pyzmq-25.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:041d617091258133e602919b28fdce4d3e2f8aedcd1e8b34c599653bc288d59e"}, + {file = "pyzmq-25.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7897ba8c3fedc6b3023bad676ceb69dbf90c077ff18ae3133ba43db47417cc72"}, + {file = "pyzmq-25.0.1-cp310-cp310-win32.whl", hash = "sha256:c462f70dadbd4649e572ca7cd1e7cf3305a8c2afc53b84214c0a7c0c3af8a657"}, + {file = "pyzmq-25.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:e3a721710992cf0e213bbb7be48fb0f32202e8d01f556c196c870373bb9ad4f4"}, + {file = "pyzmq-25.0.1-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:b0a0fcf56279b9f3acc9b36a83feb7640c51b0db444b6870e4406d002be1d514"}, + {file = "pyzmq-25.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:95aff52fc847ea5755d2370f86e379ba2ed6eb67a0a6f90f0e8e99c553693b81"}, + {file = "pyzmq-25.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b55366e6c11e1ef7403d072b9867b62cf63eebd31dd038ef65bc8d65572854f6"}, + {file = "pyzmq-25.0.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:64a2bc72bcad705ee42a8fe877478ddadb7e260e806562833d3d814125e28a44"}, + {file = "pyzmq-25.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ca66aa24422d7f324acd5cb7fc7df616eb6f0205e059393fb108702e33e90c7"}, + {file = "pyzmq-25.0.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:58d5dfec2e2befd09b04c4683b3c984d2203cf6e054d0f9786be3826737ad612"}, + {file = "pyzmq-25.0.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:3549292d65987e422e2c9f105b1485448381f489d8a6b6b040fc8b8f497bd578"}, + {file = "pyzmq-25.0.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:5b1ca8b0df50d1ac88857ffe9ebd1347e0a5bb5f6e1d99940fdd7df0ffdefb49"}, + {file = "pyzmq-25.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a1a107e89cdcf799060ba4fa85fd3c942e19df7b24eb2600618b2406cc73c18e"}, + {file = "pyzmq-25.0.1-cp311-cp311-win32.whl", hash = "sha256:0f22ba4e9041549a5a3f5a545169dda52fa0aa7b5ef46b336cbe6679c4c3c134"}, + {file = "pyzmq-25.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:0644c0d5c73e4bfeee8148f638ab16ad783df1c4d6c2f968552a26a43fb002a1"}, + {file = "pyzmq-25.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:c5eb4b17d73b1fc208a4faa6b5918983ccc961770aa37741891f61db302dae4e"}, + {file = "pyzmq-25.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:649dd55948144a108041397f07c1299086ce1c85c2e166831db3a33dac1d0c7f"}, + {file = "pyzmq-25.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c99fd8d3efc138d6a7fb1e822133f62bb18ffec66dc6d398dcb2ac2ab8eb2cb0"}, + {file = "pyzmq-25.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:d72d69d4bb37c05a446d10bc40b391cf8fb7572654fb73fa69e7d2a395197e65"}, + {file = "pyzmq-25.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:036dbf8373aed4ccf56d58c561b23601b8f33919ec1093d8c77b37ac1259702d"}, + {file = "pyzmq-25.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:861c37649c75a2ecfc2034a32b9d5ca744e1e0cddcbf65afbd8027cf7d9755be"}, + {file = "pyzmq-25.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:92f04d63aecbb71d41f7db5f988167ef429f96d8197fd46684688cdb513e8a2e"}, + {file = "pyzmq-25.0.1-cp36-cp36m-win32.whl", hash = "sha256:866a4e918f1f4b2f83e9982b817df257910e3e50e456ffa74f141a10adcd11d1"}, + {file = "pyzmq-25.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:ec29c880b82cd38a63810a93b77e13f167e05732049101947772eed9ae805097"}, + {file = "pyzmq-25.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0241a334e39aa74e4ba0ae5f9e29521f1b48b8d56bf707f25f322c04eb423e99"}, + {file = "pyzmq-25.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3b7032f55b1ed2cd8c349a89e467dca2338b7765fab82cb64c3504e49adaf51"}, + {file = "pyzmq-25.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:960f98f562ee6a50ecf283bc62479d00f5ee10e9068a21683b9e961cd87c9261"}, + {file = "pyzmq-25.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:835da498b71570d56e5526de4d5b36fa10dd9b8a82e2c405f963afeb51ff5bdc"}, + {file = "pyzmq-25.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:21de2ef6099fa8d6a3c2dc15aaca58e9f9ffdcc7b82a246590aa9564815699d9"}, + {file = "pyzmq-25.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:1e448a5a294958e915a7e1b664e6fbfcd3814989d381fb068673317f6f3ea3f8"}, + {file = "pyzmq-25.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:40d909bdc8a2d64ad260925154712602ee6a0425ae0b08bce78a19adfdc2f05b"}, + {file = "pyzmq-25.0.1-cp37-cp37m-win32.whl", hash = "sha256:6ff37f2b818df25c887fd40bb434569db7ff66b35f5dfff6f40cc476aee92e3f"}, + {file = "pyzmq-25.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:f66ee27a0221771bbaa2cce456e8ca890569c3d18b08b955eb6420c12516537c"}, + {file = "pyzmq-25.0.1-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:1003bbae89435eadec03b4fa3bb6516dd1529fb09ae5704284f7400cc77009ba"}, + {file = "pyzmq-25.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:dde7a65a8bfa88aa1721add504320f8344272542291ce4e7c77993fa32901567"}, + {file = "pyzmq-25.0.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:20b6155429d3b57e9e7bd11f1680985ef8b5b0868f1a64073fb8c01326c7c80c"}, + {file = "pyzmq-25.0.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e37a764cbf91c1ed9a02e4fede79a414284aca2a0b7d92d82a3c7b82d678ec2d"}, + {file = "pyzmq-25.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa56a362066b3a853a64d35693a08046f640961efcc0e7643768916403e72e70"}, + {file = "pyzmq-25.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:c4bdf1241886d39d816535d3ef9fc325bbf02470c9fd5f2cb62706eeb834f7f2"}, + {file = "pyzmq-25.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:446acbac24427ef42bff61a807ddcad8d03df78fb976184a4d7d6f4b1e7d8a67"}, + {file = "pyzmq-25.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b39847501d229e5fab155d88a565edfb182cdd3f7046f15a7f2df9c77cdc422d"}, + {file = "pyzmq-25.0.1-cp38-cp38-win32.whl", hash = "sha256:cba6b81b653d789d76e438c2e77b49f610b23e84b3bb43b99100f08a0a5d637b"}, + {file = "pyzmq-25.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:6eca6b90c4fb290efd27582780b5eaf048887a32b2c5fcd6330819192cb07b38"}, + {file = "pyzmq-25.0.1-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:58207a6709e53b723105bac6bb3c6795ee134f7e71351f39c09d52ac235c6b0d"}, + {file = "pyzmq-25.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c62084f37682e7ee4064e8310078be4f6f7687bf528ae5761e2ba7216c5b8949"}, + {file = "pyzmq-25.0.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9c44e9f04f8ed99c6f2e9e49f29d400d7557dd9e9e3f64e1e8a595aedc4258a2"}, + {file = "pyzmq-25.0.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c635d1c40d341835066931a018e378428dfbe0347ed4bb45a6b57f7d8c34196e"}, + {file = "pyzmq-25.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eef93b5574c9ff36b4be376555efd369bd55b99bcc7be72f23bd38102dd9392b"}, + {file = "pyzmq-25.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:44bc81099ab33388f6c061c1b194307d877428cb2b18282d0385584d5c73ed72"}, + {file = "pyzmq-25.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6d988844ed6caa21b0076b64671e83a136d93c57f1ae5a72b915661af55d313b"}, + {file = "pyzmq-25.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9d5eb6e88ae8a8734f239ffe1ed90559a426cf5b859b8ee66e0cd43fc5daf5c9"}, + {file = "pyzmq-25.0.1-cp39-cp39-win32.whl", hash = "sha256:f6b45db9de4c8adbf5fda58e827a32315d282cfb01e54dc74e7c7ccc0988c010"}, + {file = "pyzmq-25.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:47eeb94b78aa442568b85ad28f85bd37a9c3c34d052cbf8ebf8622c45f23a9cd"}, + {file = "pyzmq-25.0.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0ed7475f3adf0c7750d75740b3267947b501a33f4625ceae709fda2e75ec9ed7"}, + {file = "pyzmq-25.0.1-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:6d09c22ed4d0afcc662d17c2429a03fc1fae7fe7e3bc1f413e744bccfeaabdc3"}, + {file = "pyzmq-25.0.1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:703ec5f5a8369c09d8f3eb626358bdb590a2b1375bcce8b7da01b3a03f8b8668"}, + {file = "pyzmq-25.0.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20aea31cc0d1f6c3fb4685db08b4c771545cf3fed3c4b4c8942c0a4e97042ec8"}, + {file = "pyzmq-25.0.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:b1c03b942557bb366fd3dc377a15763d5d688de1328228136c75e50f968333cc"}, + {file = "pyzmq-25.0.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4e8a5ced9d92837f52ccdae6351c627b5012669727bc3eede2dc0f581eca1d0e"}, + {file = "pyzmq-25.0.1-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:d78f840d88244272fb7252e47522b1179833aff7ec64583bda3d21259c9c2c20"}, + {file = "pyzmq-25.0.1-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c3f78fa80780e24d294f9421123cb3bd3b68677953c53da85273a22d1c983298"}, + {file = "pyzmq-25.0.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f6de4305e02560111a5d4555758faa85d44a5bff70cccff58dbf30c81a079f0"}, + {file = "pyzmq-25.0.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:34a1b1a8ce9b20e01aba71b9279d9b1d4e5980a6a4e42092180e16628a444ca1"}, + {file = "pyzmq-25.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:625759a0112af7c3fb560de5724d749729f00b901f7625d1a3f3fb38897544b1"}, + {file = "pyzmq-25.0.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8cff159b21438c24476a49865f3d5700c9cc5833600661bc0e672decec2ff357"}, + {file = "pyzmq-25.0.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4cc47652d990de9ef967c494c526d73920ef064fef0444355a7cebec6fc50542"}, + {file = "pyzmq-25.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44db5162a6881f7d740dec65917f38f9bfbc5ad9a10e06d7d5deebb27eb63939"}, + {file = "pyzmq-25.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f38bf2c60a3f7b87cf5177043eb7a331a4f53bc9305a2452decbd42ad0c98741"}, + {file = "pyzmq-25.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:b1cf4becd15669bc62a41c1b1bb742e22ac25965134e4254cde82a4dc2554b1b"}, + {file = "pyzmq-25.0.1.tar.gz", hash = "sha256:44a24f7ce44e70d20e2a4c9ba5af70b4611df7a4b920eed2c8e0bdd5a5af225f"}, ] [package.dependencies] @@ -1965,14 +2060,14 @@ cffi = {version = "*", markers = "implementation_name == \"pypy\""} [[package]] name = "qtconsole" -version = "5.4.0" +version = "5.4.1" description = "Jupyter Qt console" category = "main" optional = false python-versions = ">= 3.7" files = [ - {file = "qtconsole-5.4.0-py3-none-any.whl", hash = "sha256:be13560c19bdb3b54ed9741a915aa701a68d424519e8341ac479a91209e694b2"}, - {file = "qtconsole-5.4.0.tar.gz", hash = "sha256:57748ea2fd26320a0b77adba20131cfbb13818c7c96d83fafcb110ff55f58b35"}, + {file = "qtconsole-5.4.1-py3-none-any.whl", hash = "sha256:bae8c7e10170cdcdcaf7e6d53ad7d6a7412249b9b8310a0eaa6b6f3b260f32db"}, + {file = "qtconsole-5.4.1.tar.gz", hash = "sha256:f67a03f40f722e13261791280f73068dbaf9dafcc335cbba644ccc8f892640e5"}, ] [package.dependencies] @@ -1980,6 +2075,7 @@ ipykernel = ">=4.1" ipython-genutils = "*" jupyter-client = ">=4.1" jupyter-core = "*" +packaging = "*" pygments = "*" pyzmq = ">=17.1" qtpy = ">=2.0.1" @@ -2306,4 +2402,4 @@ files = [ [metadata] lock-version = "2.0" python-versions = "3.10.6" -content-hash = "f99fe3b7dc19a4157887f28fee63583200de559d1e01aa64954bad915fe16dc4" +content-hash = "d3cd4683c5a8054a197275607ccf4a9668f9c08e5873aaef673f6e94e07b3051" diff --git a/pyproject.toml b/pyproject.toml index a1eac83..e570448 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,7 +12,8 @@ jupyter = "^1.0.0" pandas = "^1.5.3" scipy = "^1.10.1" matplotlib = "^3.7.0" - +duckdb="^0.7.1" +pyarrow="^11.0.0" [build-system] requires = ["poetry-core"]