diff --git a/pyproject.toml b/pyproject.toml index 588f2c0a08..39142c37c1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,7 +16,7 @@ keywords = [ dependencies = [ # Core Framework - "fastapi>=0.136.1", + "fastapi>=0.136.3", "uvicorn[standard]>=0.47.0", # MCP Server "mcp>=1.27.1", @@ -36,7 +36,7 @@ dependencies = [ "scikit-learn>=1.6.0", "statsmodels>=0.14.0", # AI & Cloud - "anthropic>=0.103.1", + "anthropic>=0.104.1", "google-cloud-storage>=3.0.0", # Image Processing "pillow>=11.0.0", @@ -49,7 +49,7 @@ dependencies = [ "python-dotenv>=1.0.0", "pandas-stubs>=2.3.0", # Caching - "cachetools>=7.1.3", + "cachetools>=7.1.4", # Auth — Cloudflare Access JWT verification on /debug/* "pyjwt[crypto]>=2.12.1", ] @@ -63,7 +63,7 @@ test = [ "aiosqlite>=0.20.0", # SQLite async driver for integration tests ] dev = [ - "ruff>=0.15.13", + "ruff>=0.15.14", "pre-commit>=4.6.0", ] typecheck = [ @@ -78,7 +78,7 @@ plotting = [ "plotnine>=0.15.4", "pygal>=3.0.0", "highcharts-core>=1.11.0", - "lets-plot>=4.6.0", + "lets-plot>=4.10.1", # PNG export dependencies "vl-convert-python>=1.7.0", # altair PNG export "kaleido>=1.3.0", # plotly PNG export @@ -99,7 +99,7 @@ lib-altair = ["altair>=6.1.0", "vl-convert-python>=1.7.0", "numpy>=2.4.6", "pand lib-plotnine = ["plotnine>=0.15.4", "numpy>=2.4.6", "pandas>=3.0.3", "scipy>=1.14.0", "scikit-learn>=1.6.0", "statsmodels>=0.14.0"] lib-pygal = ["pygal>=3.0.0", "cairosvg>=2.7.0", "pandas>=3.0.3", "scipy>=1.14.0", "scikit-learn>=1.6.0", "statsmodels>=0.14.0"] lib-highcharts = ["highcharts-core>=1.11.0", "numpy>=2.4.6", "pandas>=3.0.3", "scipy>=1.14.0", "scikit-learn>=1.6.0", "statsmodels>=0.14.0", "selenium>=4.44.0", "webdriver-manager>=4.1.1"] -lib-letsplot = ["lets-plot>=4.6.0", "pandas>=3.0.3", "scipy>=1.14.0", "scikit-learn>=1.6.0", "statsmodels>=0.14.0"] +lib-letsplot = ["lets-plot>=4.10.1", "pandas>=3.0.3", "scipy>=1.14.0", "scikit-learn>=1.6.0", "statsmodels>=0.14.0"] all = [ "anyplot[test,dev,plotting,typecheck]", ] diff --git a/uv.lock b/uv.lock index ccc9df5259..c6cb88aee8 100644 --- a/uv.lock +++ b/uv.lock @@ -182,7 +182,7 @@ wheels = [ [[package]] name = "anthropic" -version = "0.103.1" +version = "0.104.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, @@ -194,9 +194,9 @@ dependencies = [ { name = "sniffio" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fb/57/0b758b08cf4606c94d63a997d67a0063f7438efbaf81cfedd0d7c0c69d67/anthropic-0.103.1.tar.gz", hash = "sha256:21c12f4fc0fdd87a2e80d58479cd0af640062b3cfb82bbfa01c7977acd4defeb", size = 848877, upload-time = "2026-05-19T15:43:27.698Z" } +sdist = { url = "https://files.pythonhosted.org/packages/22/c7/7a655b948916f777354648ce979f68b94d5b8dbdb5f61fed1f37fad9378c/anthropic-0.104.1.tar.gz", hash = "sha256:17362b6c45f527afcc9b0fdf62011ffd359726ab2ebcb1978ea0cc41bd8d8d40", size = 850081, upload-time = "2026-05-22T15:36:57.432Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ad/ec/cf357cf571377a39552c1530390a9b79bbdb6ea463f48fbe4e3624141e3b/anthropic-0.103.1-py3-none-any.whl", hash = "sha256:b9a523fac34e64caf6ee55fdbda213950e6a744b906fce100d34909aad2cd8f4", size = 832551, upload-time = "2026-05-19T15:43:29.663Z" }, + { url = "https://files.pythonhosted.org/packages/b8/12/d9ab42790494d7c428391a46cd28492395566a6a8ccb138d681978594455/anthropic-0.104.1-py3-none-any.whl", hash = "sha256:35c8cb456f5a4405aafe1f10f03f6fcc54fa51fa8ec01d655cc4b437d120e9b7", size = 832996, upload-time = "2026-05-22T15:36:59.519Z" }, ] [[package]] @@ -401,16 +401,16 @@ requires-dist = [ { name = "alembic", specifier = ">=1.14.0" }, { name = "altair", marker = "extra == 'lib-altair'", specifier = ">=6.1.0" }, { name = "altair", marker = "extra == 'plotting'", specifier = ">=6.1.0" }, - { name = "anthropic", specifier = ">=0.103.1" }, + { name = "anthropic", specifier = ">=0.104.1" }, { name = "anyplot", extras = ["test", "dev", "plotting", "typecheck"], marker = "extra == 'all'" }, { name = "asyncpg", specifier = ">=0.30.0" }, { name = "bokeh", marker = "extra == 'lib-bokeh'", specifier = ">=3.6.0" }, { name = "bokeh", marker = "extra == 'plotting'", specifier = ">=3.6.0" }, - { name = "cachetools", specifier = ">=7.1.3" }, + { name = "cachetools", specifier = ">=7.1.4" }, { name = "cairosvg", marker = "extra == 'lib-pygal'", specifier = ">=2.7.0" }, { name = "cairosvg", marker = "extra == 'plotting'", specifier = ">=2.7.0" }, { name = "cloud-sql-python-connector", extras = ["asyncpg", "pg8000"], specifier = ">=1.20.2" }, - { name = "fastapi", specifier = ">=0.136.1" }, + { name = "fastapi", specifier = ">=0.136.3" }, { name = "fastmcp", specifier = ">=3.3.1" }, { name = "google-cloud-storage", specifier = ">=3.0.0" }, { name = "highcharts-core", marker = "extra == 'lib-highcharts'", specifier = ">=1.11.0" }, @@ -419,8 +419,8 @@ requires-dist = [ { name = "httpx", marker = "extra == 'test'", specifier = ">=0.28.0" }, { name = "kaleido", marker = "extra == 'lib-plotly'", specifier = ">=1.3.0" }, { name = "kaleido", marker = "extra == 'plotting'", specifier = ">=1.3.0" }, - { name = "lets-plot", marker = "extra == 'lib-letsplot'", specifier = ">=4.6.0" }, - { name = "lets-plot", marker = "extra == 'plotting'", specifier = ">=4.6.0" }, + { name = "lets-plot", marker = "extra == 'lib-letsplot'", specifier = ">=4.10.1" }, + { name = "lets-plot", marker = "extra == 'plotting'", specifier = ">=4.10.1" }, { name = "matplotlib", specifier = ">=3.10.9" }, { name = "matplotlib", marker = "extra == 'lib-matplotlib'", specifier = ">=3.10.9" }, { name = "matplotlib", marker = "extra == 'lib-seaborn'", specifier = ">=3.10.9" }, @@ -462,7 +462,7 @@ requires-dist = [ { name = "pytest-cov", marker = "extra == 'test'", specifier = ">=6.2.1" }, { name = "python-dotenv", specifier = ">=1.0.0" }, { name = "pyyaml", specifier = ">=6.0.0" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.15.13" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.15.14" }, { name = "scikit-learn", specifier = ">=1.6.0" }, { name = "scikit-learn", marker = "extra == 'lib-altair'", specifier = ">=1.6.0" }, { name = "scikit-learn", marker = "extra == 'lib-bokeh'", specifier = ">=1.6.0" }, @@ -642,11 +642,11 @@ wheels = [ [[package]] name = "cachetools" -version = "7.1.3" +version = "7.1.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8f/c1/67cfb86aa21144796ff51068326d467fbef8ee42f8d08a3a8a926106cf0c/cachetools-7.1.3.tar.gz", hash = "sha256:135cfe944bc3c1e805505f65dae0bef375a2f96261171ab66c79ef77d0bda39d", size = 45780, upload-time = "2026-05-18T18:21:03.819Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f4/8b/0d3945a13955303b81272f759a0331e54c5c793da455e6f5706b89d2639c/cachetools-7.1.4.tar.gz", hash = "sha256:437f55a4e0c1b01a4f3077cc470e6991d47430970e36fbcb77e2be0df4fc1cd6", size = 40085, upload-time = "2026-05-21T22:40:43.376Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/68/52/8ff5c1a3b2e821ced9b2998fba3ee29aa4525c0bf51e5ee55dd6f61a4ed5/cachetools-7.1.3-py3-none-any.whl", hash = "sha256:9876787e2346e20584d5cca236cb5d49d04e7193de91646f230725b2e1e8b804", size = 16763, upload-time = "2026-05-18T18:21:02.386Z" }, + { url = "https://files.pythonhosted.org/packages/8c/7b/1fc1c09cc0756cf25861a3be10565915953876da48bb228fb9a672b20a42/cachetools-7.1.4-py3-none-any.whl", hash = "sha256:323dc4127934744db5b54eb4924482d7edafbf9554e820d1531c2e08c0e4ef54", size = 16761, upload-time = "2026-05-21T22:40:41.845Z" }, ] [[package]] @@ -1148,7 +1148,7 @@ wheels = [ [[package]] name = "fastapi" -version = "0.136.1" +version = "0.136.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "annotated-doc" }, @@ -1157,9 +1157,9 @@ dependencies = [ { name = "typing-extensions" }, { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5d/45/c130091c2dfa061bbfe3150f2a5091ef1adf149f2a8d2ae769ecaf6e99a2/fastapi-0.136.1.tar.gz", hash = "sha256:7af665ad7acfa0a3baf8983d393b6b471b9da10ede59c60045f49fbc89a0fa7f", size = 397448, upload-time = "2026-04-23T16:49:44.046Z" } +sdist = { url = "https://files.pythonhosted.org/packages/81/2d/ff8d91d7b564d464629a0fd50a4489c97fcb836ac230bf3a7269232a9b1f/fastapi-0.136.3.tar.gz", hash = "sha256:e487fae93ad408e6f47641ee4dfe389864fd7bec92e547ea8498fc13f43e83ab", size = 396410, upload-time = "2026-05-23T18:53:15.192Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5a/ff/2e4eca3ade2c22fe1dea7043b8ee9dabe47753349eb1b56a202de8af6349/fastapi-0.136.1-py3-none-any.whl", hash = "sha256:a6e9d7eeada96c93a4d69cb03836b44fa34e2854accb7244a1ece36cd4781c3f", size = 117683, upload-time = "2026-04-23T16:49:42.437Z" }, + { url = "https://files.pythonhosted.org/packages/e0/82/45359b62a067409bd929ae8a56b8ed13e5a8c8a61194b3c236920999ab83/fastapi-0.136.3-py3-none-any.whl", hash = "sha256:3d2a69bdf04b7e9f3afa292c3bc7a98816bbfafa10bc9b45f3f3700d2f761620", size = 117481, upload-time = "2026-05-23T18:53:16.924Z" }, ] [[package]] @@ -1852,7 +1852,7 @@ wheels = [ [[package]] name = "lets-plot" -version = "4.9.0" +version = "4.10.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "palettable" }, @@ -1860,21 +1860,21 @@ dependencies = [ { name = "pypng" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/43/61/f4496a46b869990d2f2a45bc1667a7b4dfbb212f376fbf60ed2a9c41b703/lets_plot-4.9.0-cp313-cp313-macosx_10_15_x86_64.whl", hash = "sha256:be9766eeffd3690c80194faa7110e9f85235179da2e970ef8898791df1f97615", size = 7170507, upload-time = "2026-03-11T18:23:44.846Z" }, - { url = "https://files.pythonhosted.org/packages/61/0c/43be13a118cdfed9dbecc2212317dd48ba909dc2d83c81dca6ebcb7f9e5d/lets_plot-4.9.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:b6d9666baab9810b54df30076c4918e6c28c17b98a54fea271b87b0aec3ec1ca", size = 6721812, upload-time = "2026-03-11T18:23:43.207Z" }, - { url = "https://files.pythonhosted.org/packages/88/b1/1cca494df7a395dad2878c0bf5a9bc5f9b16d00973f34196c73233fa874a/lets_plot-4.9.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:48359b96e5528c5cdbeed799e7e80a7dfa1b3af76cedb997abfd9f6f9ec0e506", size = 6956107, upload-time = "2026-03-11T18:24:11.137Z" }, - { url = "https://files.pythonhosted.org/packages/11/3d/2aac8ef620daf25da961a6dc5ce202822ec09b41130eae5d9609de870d3b/lets_plot-4.9.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ee643bb4adb8a3fe29126eab76c9661a4db87bf44ac0d8d01635fd2911465ca4", size = 7653758, upload-time = "2026-03-11T18:23:55.304Z" }, - { url = "https://files.pythonhosted.org/packages/cd/37/b634257531c4e4eef3359ca1f2aa412b73d0992a68e040939852867c5d30/lets_plot-4.9.0-cp313-cp313-win_amd64.whl", hash = "sha256:a40036a03c98622cca9e316410feb8e29ddad5a941c3d63890f720821c8687c5", size = 6479987, upload-time = "2026-03-11T18:23:33.669Z" }, - { url = "https://files.pythonhosted.org/packages/3e/42/5ee6c4ae0996f50d508033fbca291f2a25c41ee09d397650e8f62c1c65c7/lets_plot-4.9.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:88f095a33f87bc64b87da9ed225dae6a0af6023e8a8c39e309e0bba40a8ca6f2", size = 7231964, upload-time = "2026-03-11T18:24:24.125Z" }, - { url = "https://files.pythonhosted.org/packages/7f/9d/b2f140181850fd8e82e6489e43ebb832e27c6354d427ecc3a6d0615c5281/lets_plot-4.9.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:1563b52971670ec8fbf989980d39706ecf560072454001afac605cd77886c64a", size = 6721823, upload-time = "2026-03-11T18:23:29.675Z" }, - { url = "https://files.pythonhosted.org/packages/f0/f0/d5d0b0ab1a5fd5b1291034b3d124076aac455daae08ffd6d35d765382c78/lets_plot-4.9.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:93a1ffea4736f49637c5d9ffeb18f69950343e15896333512c96c8f952f23656", size = 6956153, upload-time = "2026-03-11T18:23:31.844Z" }, - { url = "https://files.pythonhosted.org/packages/b6/97/71791e6938b4c4aa46b0c8e172d5bd73831dc0fda4f79fd063e40b29550d/lets_plot-4.9.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d420aa3b32b713bd6bb28a9474162d76a66ee4f3554d0bd0e0ef7685de0befe9", size = 7653799, upload-time = "2026-03-11T18:23:41.341Z" }, - { url = "https://files.pythonhosted.org/packages/bb/ed/ad91f78cf9449c556940343447857e59e8ff88c9f9e26e0f7ca5fdee9ccd/lets_plot-4.9.0-cp314-cp314-win_amd64.whl", hash = "sha256:ca34487455d7cb57f1a1d606419554bb5a8d3fa39692904d8b6e56342c67e9e1", size = 6479896, upload-time = "2026-03-11T18:23:39.527Z" }, - { url = "https://files.pythonhosted.org/packages/7c/0e/f7602ca4d90a108339e6810ade33176445026264e55ce821ad4a3645f4e9/lets_plot-4.9.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:dfd40b3aebfd54fd55e580223bfa8cdca91d66dfc3567c494c602c3f1918d960", size = 7232304, upload-time = "2026-03-11T18:23:50.303Z" }, - { url = "https://files.pythonhosted.org/packages/35/95/f5765824fc10fb1a832ef7ceaa735f3903f8366e1b791d33920387051505/lets_plot-4.9.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:9083b193748ae89bb4c118eeae944efface9777dd7b4d784af674106f8b5f2d8", size = 6776478, upload-time = "2026-03-11T18:23:22.924Z" }, - { url = "https://files.pythonhosted.org/packages/da/9c/2d171f8457051d25a8b5df5289a70318c135de102f7df983ce74e560270b/lets_plot-4.9.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:eb4442ae410d8b4be80432b182d0149d8efd049a00dc25b6c96b1ea9b9768a54", size = 6956031, upload-time = "2026-03-11T18:24:00.525Z" }, - { url = "https://files.pythonhosted.org/packages/77/da/eb887c98613c2b21ee049e00bf3c8414bded2338abdc0b10fddac6e0fee8/lets_plot-4.9.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:606f34d0401589c45a0cb7b1ab69823a8a10cd128d01d7ef8d464e343d128d18", size = 7654173, upload-time = "2026-03-11T18:23:53.679Z" }, - { url = "https://files.pythonhosted.org/packages/e9/02/8d9f251f7b4542dd369b959c0df57da9fdee5b6a8b2e0a34390d50583804/lets_plot-4.9.0-cp314-cp314t-win_amd64.whl", hash = "sha256:5449e25a7a20c091ae4ee6f54d1711458cd2cc5e1963455c2293052249eda824", size = 6480184, upload-time = "2026-03-11T18:24:04.333Z" }, + { url = "https://files.pythonhosted.org/packages/ce/0d/57889fe793b878f86ccc7ce461ff88346ab0e1a97c980122b4b786a40131/lets_plot-4.10.1-cp313-cp313-macosx_10_15_x86_64.whl", hash = "sha256:f13250166b00bca300d719f6d25dc6d7926bcc09767e9102bb9e7058fdff3b9a", size = 7238943, upload-time = "2026-05-20T21:33:15.94Z" }, + { url = "https://files.pythonhosted.org/packages/4d/3c/655c629d6af9a6c862af6df86ffb0bb8f988094e33e7c6c62e9847e290fd/lets_plot-4.10.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:d79b397181e050fd6225d5d2e047dfa70a57a96f009e30f50b005817d7d72cc4", size = 6793605, upload-time = "2026-05-20T21:33:06.624Z" }, + { url = "https://files.pythonhosted.org/packages/61/9a/59023e5ec8cb2a91b97a50999f75746969d3237c56e9d017c363da5fa42e/lets_plot-4.10.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c45d1fd41f9e3134bc32e2954e733608b08a7e0b5484dead66c2d78ba39b9ec2", size = 7022267, upload-time = "2026-05-20T21:33:33.473Z" }, + { url = "https://files.pythonhosted.org/packages/a3/6f/232939e1fbb8b9d52e716450481f12710b21f746c9c2d4e298c2ff79d352/lets_plot-4.10.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8534e767ee937ba63a21f52139d729c8e7171877788a908150fe072dbd45e69f", size = 7731545, upload-time = "2026-05-20T21:33:31.523Z" }, + { url = "https://files.pythonhosted.org/packages/e5/ed/f691e015f72ea99df091358b49e7539623304e0d6a87ab58446005a142e7/lets_plot-4.10.1-cp313-cp313-win_amd64.whl", hash = "sha256:459ac281ad135ee005f0477efb5488b9a9522cc0fee3c9bdaab34351b442da46", size = 6546387, upload-time = "2026-05-20T21:32:44.802Z" }, + { url = "https://files.pythonhosted.org/packages/02/58/d836d3bb22ba3c77f0d38b73ca981633271df82c46ae5de965af83ee4994/lets_plot-4.10.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:2e8193bc6593f5f8bf192df467d4fa1d49bfbfd9c34ee91d1cc93afbcd34f9a3", size = 7308539, upload-time = "2026-05-20T21:32:49.108Z" }, + { url = "https://files.pythonhosted.org/packages/a0/52/00e307dd158f475182274d349b17067a8b90850d88441bc1277ae3e44fc9/lets_plot-4.10.1-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:0295d0f1d98e4e43f31320f0bc117fe59b7e5ecb7caaddd00b4e2c73e02093ea", size = 6793610, upload-time = "2026-05-20T21:32:47.016Z" }, + { url = "https://files.pythonhosted.org/packages/3c/41/00292d770dbde114d580350ec25671486db34c1557fa5a46e8f2f14a8b19/lets_plot-4.10.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b266313dab409c3ad80a04eff48e88cda4dc0a867b91add487a1ea5c59019155", size = 7022327, upload-time = "2026-05-20T21:32:56.004Z" }, + { url = "https://files.pythonhosted.org/packages/72/05/6b5f06d3fd1c10ff8d85dfad963581fcb8be6f39a266b0342e3d6bba6d84/lets_plot-4.10.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:21d419d485759b5d73fc0df6ed9f3b0ce0949eae87a128349e003cd5c691baf9", size = 7731591, upload-time = "2026-05-20T21:33:04.68Z" }, + { url = "https://files.pythonhosted.org/packages/db/ca/ce9fb6eeca97d790b3a05fd3c4019c0d540b41b7fdc360ee792bc23dd501/lets_plot-4.10.1-cp314-cp314-win_amd64.whl", hash = "sha256:b1157c677c0c83b275ca179ff8547dd721c6b5adf0dc6bc80f00ef53af508732", size = 6546358, upload-time = "2026-05-20T21:32:51.771Z" }, + { url = "https://files.pythonhosted.org/packages/48/b3/c55c2b3b1071e19887a30ddae3c77f7bb154d9826366b8a4767572d39d91/lets_plot-4.10.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:83f56380f301f20d48c76637997ba0faee6695c1c7f900068ba8d6bd28d7dd74", size = 7308429, upload-time = "2026-05-20T21:32:58.039Z" }, + { url = "https://files.pythonhosted.org/packages/6c/55/3bffc5c22bdd2e40247a453479d061d5031355ee844fae379140959622ef/lets_plot-4.10.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:39f908d2d7a20887f11179c1131a563194a2bbb88ff08bb3cae25bc6833ef6e5", size = 6852541, upload-time = "2026-05-20T21:33:11.552Z" }, + { url = "https://files.pythonhosted.org/packages/6f/78/75a612deb4cfb31c2da32c1e683a3e9709ef415f5538c13419f1cc6be143/lets_plot-4.10.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5577caa732244e0142f2bab85e564dc058ccd22882da28c5b7328b1d52f482e4", size = 7022863, upload-time = "2026-05-20T21:33:29.396Z" }, + { url = "https://files.pythonhosted.org/packages/19/dd/39303781f7dac149bd5f0a5637c228507811cbe7e97c836468cedbffc1a2/lets_plot-4.10.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9ab8524c7561850676f0554ed017622c9846097a9cafeb61ca9045207bc4ae6e", size = 7732125, upload-time = "2026-05-20T21:33:42.817Z" }, + { url = "https://files.pythonhosted.org/packages/6f/ec/a8798faa72cbe17798a8e5172d0ba1b90ec41feb274c03f63dbbc0aa4fb9/lets_plot-4.10.1-cp314-cp314t-win_amd64.whl", hash = "sha256:a8efbddd901adc0ecd576d73bbcc0aaaa10a7ddb06843c98861ed4fed3601885", size = 6546268, upload-time = "2026-05-20T21:33:21.544Z" }, ] [[package]] @@ -3200,27 +3200,27 @@ wheels = [ [[package]] name = "ruff" -version = "0.15.13" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/24/21/a7d5c126d5b557715ef81098f3db2fe20f622a039ff2e626af28d674ab80/ruff-0.15.13.tar.gz", hash = "sha256:f9d89f17f7ba7fb2ed42921f0df75da797a9a5d71bc39049e2c687cf2baf44b7", size = 4678180, upload-time = "2026-05-14T13:44:37.869Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c6/61/11d458dc6ac22504fd8e237b29dfd40504c7fbbcc8930402cfe51a8e63ed/ruff-0.15.13-py3-none-linux_armv6l.whl", hash = "sha256:444b580fc72fd6887e650acd3e575e18cdc79dbcf42fb4030b491057921f61f8", size = 10738279, upload-time = "2026-05-14T13:44:18.7Z" }, - { url = "https://files.pythonhosted.org/packages/86/ca/caa871ee7be718c45256fada4e16a218ee3e33f0c4a46b729a60a24912e6/ruff-0.15.13-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:6590d009e7cb7ebf36f83dbdd44a3fa48a0994ff6f1cdc1b08006abe58f98dc7", size = 11124798, upload-time = "2026-05-14T13:44:06.427Z" }, - { url = "https://files.pythonhosted.org/packages/d3/19/43f5f2e568dddde567fc41f8471f9432c09563e19d3e617a48cfa52f8f0a/ruff-0.15.13-py3-none-macosx_11_0_arm64.whl", hash = "sha256:1c26d2f66163deeb6e08d8b39fbbe983ce3c71cea06a6d7591cfd1421793c629", size = 10460761, upload-time = "2026-05-14T13:44:04.375Z" }, - { url = "https://files.pythonhosted.org/packages/99/df/cf938cd6de3003178f03ad7c1ea2a6c099468c03a35037985070b37e76be/ruff-0.15.13-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dbd6f94b434f896308e4d57fb7bfde0d02b99f7a64b3bdab0fdfa6a864203a5", size = 10804451, upload-time = "2026-05-14T13:44:25.221Z" }, - { url = "https://files.pythonhosted.org/packages/c7/7d/5d0973129b154ded2225729169d7068f26b467760b146493fde138415f23/ruff-0.15.13-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bf3259f3be4d181bda591da5db2571aed6853c6a048157756448020bc6c5cd22", size = 10534285, upload-time = "2026-05-14T13:44:08.888Z" }, - { url = "https://files.pythonhosted.org/packages/1f/e3/6b999bbc66cd51e5f073842bc2a3995e99c5e0e72e16b15e7261f7abf57a/ruff-0.15.13-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae9c17e5eb4430c154e76abc25d79a318190f5a997f38fb6b114416c5319ffc9", size = 11312063, upload-time = "2026-05-14T13:44:11.274Z" }, - { url = "https://files.pythonhosted.org/packages/af/5a/642639e9f5db04f1e97fbd6e091c6fd20725bdf072fb114d00eefb9e6eb8/ruff-0.15.13-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e2e39bff6c341f4b577a21b801326fab0b11847f48fcaa83f00a113c9b3cb55", size = 12183079, upload-time = "2026-05-14T13:44:01.634Z" }, - { url = "https://files.pythonhosted.org/packages/19/4c/7585735f6b53b0f12de13618b2f7d250a844f018822efc899df2e7b8295f/ruff-0.15.13-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e8d9a8e08013542e94d3220bc5b62cc3e5ef87c5f74bff367d3fac14fab013e6", size = 11440833, upload-time = "2026-05-14T13:43:59.043Z" }, - { url = "https://files.pythonhosted.org/packages/e8/31/bf1a0803d077e679cfeee5f2f67290a0fa79c7385b5d9a8c17b9db2c48f0/ruff-0.15.13-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc411dfebe5eebe55ce041c6ae080eb7668955e866daa2fbb16692a784f1c4ca", size = 11434486, upload-time = "2026-05-14T13:44:27.761Z" }, - { url = "https://files.pythonhosted.org/packages/e1/4e/62c9b999875d4f14db80f277c030578f5e249c9852d65b7ac7ad0b43c041/ruff-0.15.13-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:768494eb08b9cee54e2fd27969966f74db5a57f6eaa7a90fcb3306af34dfc4bd", size = 11385189, upload-time = "2026-05-14T13:44:13.704Z" }, - { url = "https://files.pythonhosted.org/packages/fc/89/7e959047a104df3eb12863447c110140191fc5b6c4f379ea2e803fcdb0e4/ruff-0.15.13-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:fb75f9a3a7e42ffe117d734494e6c5e5cb3565d66e12612cb63d0e572a41a5b6", size = 10781380, upload-time = "2026-05-14T13:43:56.734Z" }, - { url = "https://files.pythonhosted.org/packages/ff/52/5fd18f3b88cab63e88aa11516b3b4e1e5f720e5c330f8dbe5c26210f41f8/ruff-0.15.13-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:8cb74dd33bb2f6613faf7fc03b660053b5ac4f80e706d5788c6335e2a8048d51", size = 10540605, upload-time = "2026-05-14T13:44:20.748Z" }, - { url = "https://files.pythonhosted.org/packages/e8/e0/9e35f338990d3e41a82875ff7053ffe97541dae81c9d02143177f381d572/ruff-0.15.13-py3-none-musllinux_1_2_i686.whl", hash = "sha256:7ef823f817fcd191dc934e984be9cf4094f808effa16f2542ad8e821ba02bbf2", size = 11036554, upload-time = "2026-05-14T13:44:16.256Z" }, - { url = "https://files.pythonhosted.org/packages/c2/13/070fb048c24080fba188f66371e2a92785be257ad02242066dc7255ac6e9/ruff-0.15.13-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:f345a13937bd7f09f6f5d19fa0721b0c103e00e7f62bc67089a8e5e037719e0b", size = 11528133, upload-time = "2026-05-14T13:44:22.808Z" }, - { url = "https://files.pythonhosted.org/packages/6b/8c/b1e1666aef7fc6555094d73ae6cd981701781ae85b97ceefc0eebd0b4668/ruff-0.15.13-py3-none-win32.whl", hash = "sha256:4044f94208b3b05ba0fc4a4abd0558cf4d6459bd18325eead7fd8cc66f909b41", size = 10721455, upload-time = "2026-05-14T13:44:35.697Z" }, - { url = "https://files.pythonhosted.org/packages/ab/a6/870a3e8a50590bb92be184ad928c2922f088b00d9dc5c5ec7b924ee08c22/ruff-0.15.13-py3-none-win_amd64.whl", hash = "sha256:7064884d442b7d477b4e7473d12da7f08851d2b1982763c5d3f388a19468a1a4", size = 11900409, upload-time = "2026-05-14T13:44:30.389Z" }, - { url = "https://files.pythonhosted.org/packages/9b/36/9c015cd052fca743dae8cb2aeb16b551444787467db42ceab0fc968865af/ruff-0.15.13-py3-none-win_arm64.whl", hash = "sha256:2471da9bd1068c8c064b5fd9c0c4b6dddffd6369cb1cd68b29993b1709ff1b21", size = 11179336, upload-time = "2026-05-14T13:44:33.026Z" }, +version = "0.15.14" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/dc/8a/8bce2894573e9dae6ff4d77fe34ad727d79b9e6238ad288c5638990d90f6/ruff-0.15.14.tar.gz", hash = "sha256:48e866b165be4a9bdbf310f7d3c9a07edef2fe8cd63ffeb4e00bb590506ebf9f", size = 4700910, upload-time = "2026-05-21T14:34:55.177Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b9/c8/74a92c6ff9fcfb4f1f947126d3ebee8389276e161ecc85de5bda7cda51bd/ruff-0.15.14-py3-none-linux_armv6l.whl", hash = "sha256:8dd2db9416e487c8d4b01fa7056bb02c4d05969d4f8d17a08c229c2f4ff3c108", size = 10739177, upload-time = "2026-05-21T14:34:37.332Z" }, + { url = "https://files.pythonhosted.org/packages/45/91/254a35c20acc38a7223c9d2d594af12e794432464f2cdeb52af1dc4a892d/ruff-0.15.14-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:be4ff55af755bd71a00ab3dc6bd7ffc467bd76e0df6881e286c2e3d23e8fb43b", size = 11144969, upload-time = "2026-05-21T14:34:43.978Z" }, + { url = "https://files.pythonhosted.org/packages/56/9e/d13e40f83b8d0a94430e6778ce1d94a43b38cf2efe63278bdd2b4c65abbf/ruff-0.15.14-py3-none-macosx_11_0_arm64.whl", hash = "sha256:48d5909d7d06276ce7dde6d32bfa4b0d4cb2651145cd8ee4b440722cbc77832f", size = 10478207, upload-time = "2026-05-21T14:34:48.378Z" }, + { url = "https://files.pythonhosted.org/packages/8d/f1/b15a7839fa4f332f8acec78e20564f26bb2d866e3d21710b877fd0263000/ruff-0.15.14-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca8cbfa94c4f90984a67561978602746d4cd27103568f745fa90eee3f0d4107d", size = 10818459, upload-time = "2026-05-21T14:34:22.318Z" }, + { url = "https://files.pythonhosted.org/packages/45/33/53d651177f84f94b400a0e27f8824eeada3dddc9d5ee8aeb048f4352a520/ruff-0.15.14-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9a6bbc0333f1ab053423bcbf6226477d266ca7cec7738c4c8e3f55647803f3c4", size = 10541800, upload-time = "2026-05-21T14:34:20.209Z" }, + { url = "https://files.pythonhosted.org/packages/b8/a6/868f87e0bf9786ed24b5d0d0ad8676b8a94fd1912f42cddf9cfc7857818a/ruff-0.15.14-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8a24a4f7605d7003a6674d4387651effd939dead3fddd0f36561eb77a9a2e542", size = 11342149, upload-time = "2026-05-21T14:34:46.365Z" }, + { url = "https://files.pythonhosted.org/packages/a7/8b/38cd5c19faffdcc05a408d2b78edccc69492ab9720eadb49ea15ef80d768/ruff-0.15.14-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:049b5326e53ed80978f2fc041a280603f69dd6b0c95464342a2bb4572d9d9e2f", size = 12212563, upload-time = "2026-05-21T14:34:28.579Z" }, + { url = "https://files.pythonhosted.org/packages/3e/4d/a3c5b874a556d5731e3e657aaf04311bb76f0a5c3ec220ed43051be6b64b/ruff-0.15.14-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d4ed42e6696c8dfa5f06728e6441993901f548eb92d73bc472cb5a38d1395fbf", size = 11493299, upload-time = "2026-05-21T14:34:41.836Z" }, + { url = "https://files.pythonhosted.org/packages/1e/c0/56472c251d09858a53e51efbd485b09e1995d8731668b76d52e5dd6ee0f1/ruff-0.15.14-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:715c543cf450c4888251f91c52f1942a800541d9bddd7ac060aa4e6b77ae7cba", size = 11455931, upload-time = "2026-05-21T14:34:57.276Z" }, + { url = "https://files.pythonhosted.org/packages/2c/4a/e2e7b4d8dbf233d4eace59c75bc3435fa6d8bd3bae82d351d4e4300c0fd1/ruff-0.15.14-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:72ebab6013ec887d439d8b7593737a0a4ffb06d45d209d4e4bf2e92813082d3f", size = 11400794, upload-time = "2026-05-21T14:34:39.773Z" }, + { url = "https://files.pythonhosted.org/packages/97/c7/83c0539fe34c3e09136204d1e75d6052492364e0b3cb05e9465423f567d7/ruff-0.15.14-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:49072d36abdbe97a8dd7f480afe9c675699c0c495d4c84076e2c1203c4550581", size = 10804759, upload-time = "2026-05-21T14:34:31.045Z" }, + { url = "https://files.pythonhosted.org/packages/86/a6/18f2bfc095a2ab4a78745644e428205532ce6653a5d0fa8501572891534d/ruff-0.15.14-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:958522aee105068640c2c2ceae08f413ae44d922f52a1374ac13d6a96032fc93", size = 10539517, upload-time = "2026-05-21T14:34:53.064Z" }, + { url = "https://files.pythonhosted.org/packages/54/3a/5a8b3b69c654d4e4bf1d246ac5b49cbcdac6eaab6905925f8915f31e3b80/ruff-0.15.14-py3-none-musllinux_1_2_i686.whl", hash = "sha256:f3707da619a143a2e8830e2abab8224478d69ace2d28cb6c20543ae97c36bf61", size = 11065169, upload-time = "2026-05-21T14:34:24.484Z" }, + { url = "https://files.pythonhosted.org/packages/ed/c5/8864e4e7925b836ea354b31d57641ec03830564e281a8b6f061f8c3e0ec1/ruff-0.15.14-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:bb01d645694e3ec0102105d07ef2d53703970407d59c04e59d3ba0b7a1d53553", size = 11560214, upload-time = "2026-05-21T14:34:50.975Z" }, + { url = "https://files.pythonhosted.org/packages/36/38/012bf76752e1f89ed50b77b99532d90f3a3e287bc7918e1fc0948ac866ac/ruff-0.15.14-py3-none-win32.whl", hash = "sha256:6d0c1ad2a0ab718d39b6d8fd2217981ce4d625cd96a720095f798fb47d8b13e6", size = 10805548, upload-time = "2026-05-21T14:34:33.453Z" }, + { url = "https://files.pythonhosted.org/packages/d1/b7/4ea2c170f10ad760fff2a5250beb18897719dc8b52b53a24cddbb9dd3f19/ruff-0.15.14-py3-none-win_amd64.whl", hash = "sha256:802342981e056db3851a7836e5b070f8f15f67d4a685ae2a6160939d364b2902", size = 11939523, upload-time = "2026-05-21T14:34:18.077Z" }, + { url = "https://files.pythonhosted.org/packages/62/d5/bc97ff895ec35cf3925d4bd60f3b39d822f377a446906ec9bcc87405e59b/ruff-0.15.14-py3-none-win_arm64.whl", hash = "sha256:ff47b90a9ef6a40c9e2f3b479c1fb78531adf055b94c1eba0a7ba04b31951826", size = 11208607, upload-time = "2026-05-21T14:34:26.525Z" }, ] [[package]]