diff --git a/pyproject.toml b/pyproject.toml index 0d6e725717..77a7c93fbf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,11 +16,11 @@ keywords = [ dependencies = [ # Core Framework - "fastapi>=0.139.2", + "fastapi>=0.140.7", "uvicorn[standard]>=0.51.0", # MCP Server "mcp>=1.28.1", - "fastmcp>=3.4.4", + "fastmcp>=3.4.5", # Database "sqlalchemy[asyncio]>=2.0.51", "asyncpg>=0.30.0", @@ -36,7 +36,7 @@ dependencies = [ "scikit-learn>=1.9.0", "statsmodels>=0.14.0", # AI & Cloud - "anthropic>=0.119.0", + "anthropic>=0.120.0", "google-cloud-storage>=3.13.0", # Image Processing "pillow>=12.3.0", @@ -49,7 +49,7 @@ dependencies = [ "python-dotenv>=1.0.0", "pandas-stubs>=3.0.3.260530", # Caching - "cachetools>=7.1.5", + "cachetools>=7.1.6", # Auth — Cloudflare Access JWT verification on /debug/* "pyjwt[crypto]>=2.13.0", ] @@ -73,7 +73,7 @@ plotting = [ # Additional plotting libraries (matplotlib already in main dependencies) "seaborn>=0.13.0", "plotly>=6.9.0", - "bokeh>=3.9.1", + "bokeh>=3.9.2", "altair>=6.2.2", "plotnine>=0.15.7", "pygal>=3.1.3", @@ -101,7 +101,7 @@ plotting = [ lib-matplotlib = ["matplotlib>=3.11.1", "numpy>=2.5.1", "pandas>=3.0.5", "scipy>=1.18.0", "scikit-learn>=1.9.0", "statsmodels>=0.14.0"] lib-seaborn = ["seaborn>=0.13.0", "matplotlib>=3.11.1", "numpy>=2.5.1", "pandas>=3.0.5", "scipy>=1.18.0", "scikit-learn>=1.9.0", "statsmodels>=0.14.0"] lib-plotly = ["plotly>=6.9.0", "kaleido>=1.3.0", "numpy>=2.5.1", "pandas>=3.0.5", "scipy>=1.18.0", "scikit-learn>=1.9.0", "statsmodels>=0.14.0"] -lib-bokeh = ["bokeh>=3.9.1", "numpy>=2.5.1", "pandas>=3.0.5", "scipy>=1.18.0", "scikit-learn>=1.9.0", "statsmodels>=0.14.0", "selenium>=4.46.0", "webdriver-manager>=4.1.2"] +lib-bokeh = ["bokeh>=3.9.2", "numpy>=2.5.1", "pandas>=3.0.5", "scipy>=1.18.0", "scikit-learn>=1.9.0", "statsmodels>=0.14.0", "selenium>=4.46.0", "webdriver-manager>=4.1.2"] lib-altair = ["altair>=6.2.2", "vl-convert-python>=1.7.0", "numpy>=2.5.1", "pandas>=3.0.5", "scipy>=1.18.0", "scikit-learn>=1.9.0", "statsmodels>=0.14.0"] lib-plotnine = ["plotnine>=0.15.7", "numpy>=2.5.1", "pandas>=3.0.5", "scipy>=1.18.0", "scikit-learn>=1.9.0", "statsmodels>=0.14.0"] lib-pygal = ["pygal>=3.1.3", "cairosvg>=2.7.0", "pandas>=3.0.5", "scipy>=1.18.0", "scikit-learn>=1.9.0", "statsmodels>=0.14.0"] diff --git a/uv.lock b/uv.lock index 23b8e9b67c..2b256b4de1 100644 --- a/uv.lock +++ b/uv.lock @@ -195,7 +195,7 @@ wheels = [ [[package]] name = "anthropic" -version = "0.119.0" +version = "0.120.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, @@ -207,9 +207,9 @@ dependencies = [ { name = "sniffio" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2a/c5/f1d53b7d27b25a7f491d39c5cd9d39805be2d115d7f7431a8bf22f286afe/anthropic-0.119.0.tar.gz", hash = "sha256:40a81b094ae2a0056a77771257943b19bd46edce1326e22f85c2794492097f0a", size = 999050, upload-time = "2026-07-23T17:34:40.233Z" } +sdist = { url = "https://files.pythonhosted.org/packages/92/5c/3331da4fc009d448008a50c78d86cc929e8c937cd1442245ce3f80561c4e/anthropic-0.120.0.tar.gz", hash = "sha256:6ba6007dc9b00365b20f6101a6618f5196ac1ceef81512e4b5cc0e7436d4975d", size = 1008042, upload-time = "2026-07-24T16:32:52.384Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/dc/2e/5e90df53b474e856a3ae065c0df77e62bf58cb2df8819ec850d08b82518a/anthropic-0.119.0-py3-none-any.whl", hash = "sha256:2b39107077489d19d7c66000e9d9263293d431550fcf6b543ead785c6ac85962", size = 1012756, upload-time = "2026-07-23T17:34:41.896Z" }, + { url = "https://files.pythonhosted.org/packages/1b/8a/8522bdf809e1f95f0d9c936540987a3f6afba01d2921a2bf488dedf836a8/anthropic-0.120.0-py3-none-any.whl", hash = "sha256:591bd531563ec7b63a1e138f5c11f14cb94edda99623b349c2ce2ece8e08b8a5", size = 1022602, upload-time = "2026-07-24T16:32:50.506Z" }, ] [[package]] @@ -422,18 +422,18 @@ requires-dist = [ { name = "alembic", specifier = ">=1.18.5" }, { name = "altair", marker = "extra == 'lib-altair'", specifier = ">=6.2.2" }, { name = "altair", marker = "extra == 'plotting'", specifier = ">=6.2.2" }, - { name = "anthropic", specifier = ">=0.119.0" }, + { name = "anthropic", specifier = ">=0.120.0" }, { name = "anyplot", extras = ["test", "dev", "plotting", "typecheck"], marker = "extra == 'all'" }, { name = "asyncpg", specifier = ">=0.30.0" }, - { name = "bokeh", marker = "extra == 'lib-bokeh'", specifier = ">=3.9.1" }, - { name = "bokeh", marker = "extra == 'plotting'", specifier = ">=3.9.1" }, - { name = "cachetools", specifier = ">=7.1.5" }, + { name = "bokeh", marker = "extra == 'lib-bokeh'", specifier = ">=3.9.2" }, + { name = "bokeh", marker = "extra == 'plotting'", specifier = ">=3.9.2" }, + { name = "cachetools", specifier = ">=7.1.6" }, { name = "cairosvg", marker = "extra == 'lib-pygal'", specifier = ">=2.7.0" }, { name = "cairosvg", marker = "extra == 'plotting'", specifier = ">=2.7.0" }, { name = "cartopy", marker = "extra == 'plotting'", specifier = ">=0.24.0" }, { name = "cloud-sql-python-connector", extras = ["asyncpg", "pg8000"], specifier = ">=1.20.4" }, - { name = "fastapi", specifier = ">=0.139.2" }, - { name = "fastmcp", specifier = ">=3.4.4" }, + { name = "fastapi", specifier = ">=0.140.7" }, + { name = "fastmcp", specifier = ">=3.4.5" }, { name = "google-cloud-storage", specifier = ">=3.13.0" }, { name = "highcharts-core", marker = "extra == 'lib-highcharts'", specifier = ">=1.11.0" }, { name = "highcharts-core", marker = "extra == 'plotting'", specifier = ">=1.11.0" }, @@ -650,7 +650,7 @@ wheels = [ [[package]] name = "bokeh" -version = "3.9.1" +version = "3.9.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "contourpy" }, @@ -663,18 +663,18 @@ dependencies = [ { name = "tornado", marker = "sys_platform != 'emscripten'" }, { name = "xyzservices" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fc/cc/754521e919aab05982f126b7702c0a253341ef6b400beca22bc5b4bdcb72/bokeh-3.9.1.tar.gz", hash = "sha256:1463d3c84fba61a925ea6ace0b4d3d9c0160ca214f6851edbfed6dc27e172b60", size = 5749911, upload-time = "2026-06-04T18:04:42.932Z" } +sdist = { url = "https://files.pythonhosted.org/packages/dd/6f/262b649ad2fdd5ed23341452eebfa669a73b0e0c739a369204d02ee2e201/bokeh-3.9.2.tar.gz", hash = "sha256:5be30d105b329d7d2ab1cb92f51e6bd44e23f0fe21ab8d49594b220b2ab11632", size = 5751825, upload-time = "2026-07-25T16:57:56.207Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f3/54/40ff985187f0fd1afcedebc23eda0ba92bdbea1e0605cbb878b45391e5e0/bokeh-3.9.1-py3-none-any.whl", hash = "sha256:8bf2aae574509055fbd6b68f023046bebc91b0bbd631d204d0d60863b4237dbd", size = 6406728, upload-time = "2026-06-04T18:04:40.832Z" }, + { url = "https://files.pythonhosted.org/packages/ca/0c/06a99ee998b1babf95074376cbf6ede5a86af726b12cbf47c4b84fa2803a/bokeh-3.9.2-py3-none-any.whl", hash = "sha256:448e07d5ee78231f5bdece3be020024bb98696c0d6b127e0e2df0b8ba8fa9765", size = 6409477, upload-time = "2026-07-25T16:57:54.62Z" }, ] [[package]] name = "cachetools" -version = "7.1.5" +version = "7.1.6" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/87/23/635f22bbd6478b02672432656a5f46775768e24b2715c2e8658b3d210602/cachetools-7.1.5.tar.gz", hash = "sha256:0def7134eba79e59448edaf5d2e3cc8e49978ab2fd56189c1efd19856b134ab5", size = 40500, upload-time = "2026-07-22T23:51:31.846Z" } +sdist = { url = "https://files.pythonhosted.org/packages/55/af/861ebc2e318a5c3300e3eb63bc4d30f3d70a46d13b360093728ac0705eed/cachetools-7.1.6.tar.gz", hash = "sha256:c7a79e7f30ba9943c1cefd08cc36f006aaae086e017af9166f1d59d6170c47e1", size = 40572, upload-time = "2026-07-23T22:47:53.737Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6c/9b/8bd3cf22c5559a39e905b4884f773768f849091d91e374212d5a9ab66cd7/cachetools-7.1.5-py3-none-any.whl", hash = "sha256:900cda61ff34fafca2b7f78cfd2a91e2d4f9655c19309ef542ce0a04f91e6cd9", size = 16963, upload-time = "2026-07-22T23:51:30.279Z" }, + { url = "https://files.pythonhosted.org/packages/9f/f2/2086ba18a925a73586c4d4e61d25f4a6058e56fd00d77ce8f1d361ab4c9b/cachetools-7.1.6-py3-none-any.whl", hash = "sha256:2c12e255780330af28b91bb7fb96cce4c766f04e38396b9a24510190a5827096", size = 16954, upload-time = "2026-07-23T22:47:52.397Z" }, ] [[package]] @@ -1196,7 +1196,7 @@ wheels = [ [[package]] name = "fastapi" -version = "0.139.2" +version = "0.140.7" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "annotated-doc" }, @@ -1205,26 +1205,26 @@ dependencies = [ { name = "typing-extensions" }, { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/cd/95/d3f0ae10836324a2eab98a52b61210ac609f08200bf4bb0dc8132d32f78a/fastapi-0.139.2.tar.gz", hash = "sha256:333145a6891e9b5b3cfceb69baf817e8240cde4d4588ae5a10bf56ffacb6255e", size = 423428, upload-time = "2026-07-16T15:06:17.912Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e1/33/e0dfa29ccce4eb8c9a073f9e557b0d6bacbb3aa32e7ad595f678de4d036a/fastapi-0.140.7.tar.gz", hash = "sha256:09a640af2d29006345e1f28e4f031fa60f89b1a75d29f26070f3afa677d66cce", size = 422051, upload-time = "2026-07-27T17:34:45.908Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5f/c7/cb03251d9dfb177246a9809a76f189d21df32dbd4a845951881d11323b7f/fastapi-0.139.2-py3-none-any.whl", hash = "sha256:b9ad015a835173d59865e2f5d8296fbc2b317bf56a2ba1a5bfbdd03de2fd4b1c", size = 130234, upload-time = "2026-07-16T15:06:19.557Z" }, + { url = "https://files.pythonhosted.org/packages/7b/0e/00cddd6b8668884e9c7588ab0eeb73becbd1efa3eaead34397f2e9a8de49/fastapi-0.140.7-py3-none-any.whl", hash = "sha256:960bb9696d8fd19dff488aa4f67f276364542cfcce9f7e68a82fe49dce126626", size = 131085, upload-time = "2026-07-27T17:34:47.036Z" }, ] [[package]] name = "fastmcp" -version = "3.4.4" +version = "3.4.5" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "fastmcp-slim", extra = ["client", "server"] }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9c/f7/5188565d1b93ad611cbd80bf473e7ad669d1f3b689c4bedcd304e1ec3472/fastmcp-3.4.4.tar.gz", hash = "sha256:378202e26ec15b23819d9a1c0d1b0ebda096bc712720532010a0b82a45c2b1df", size = 28796458, upload-time = "2026-07-09T00:32:41.352Z" } +sdist = { url = "https://files.pythonhosted.org/packages/23/14/c1ffb91b7d1fece86c81e1f9df5474f30fd97e4cdaa398814bbbeee88568/fastmcp-3.4.5.tar.gz", hash = "sha256:a95f2bc876bef42e8b50f7872f24f3f2fe3b1d37408c734e8b9d9e03014b72d3", size = 28800521, upload-time = "2026-07-27T19:20:01.231Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5f/67/3cef84ba38a23dca1e1e776bfda8a35ab3c7a6c94a8ca81d0715de6dd3c5/fastmcp-3.4.4-py3-none-any.whl", hash = "sha256:f86f208713212260068cf55c32936839eee856fefc7808e18a032f31eb0f718e", size = 8019, upload-time = "2026-07-09T00:32:39.411Z" }, + { url = "https://files.pythonhosted.org/packages/c6/4f/73450a436c963c0382d15a882fc5d08f15aadc329194df1b54495a7c8383/fastmcp-3.4.5-py3-none-any.whl", hash = "sha256:5d3d438eb2917e63e6faf53e8cb8fe26d887ec3232f848093a4eecad7fa34861", size = 8017, upload-time = "2026-07-27T19:19:57.942Z" }, ] [[package]] name = "fastmcp-slim" -version = "3.4.4" +version = "3.4.5" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "platformdirs" }, @@ -1234,9 +1234,9 @@ dependencies = [ { name = "rich" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/45/79/f35661c6a1d76dfbe17a079f912d96fffcfdd40fad5a9144bb9e7dfb1fdf/fastmcp_slim-3.4.4.tar.gz", hash = "sha256:dcaa3e0be2127d7eacdce592c2ef0039204923dc0ec396454615cb4a3275b078", size = 590203, upload-time = "2026-07-09T00:32:20.531Z" } +sdist = { url = "https://files.pythonhosted.org/packages/81/1d/f3e271fbcd01ce01a4cf623b336d8e1305c192aa5d5e8e0223b7167462e9/fastmcp_slim-3.4.5.tar.gz", hash = "sha256:5badc3bceee61f61297eeb9494f499325f3ce1cafabf4611b31f6c3e9d7dff59", size = 591622, upload-time = "2026-07-27T19:15:19.455Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/16/91/321e0b2e9ed70d0628b17ddaec76fc7b09f3e1d5d290f70bf101a2890142/fastmcp_slim-3.4.4-py3-none-any.whl", hash = "sha256:9d3a6327b9ee835188eb7323fc3b5d4cd061631b48da8ece56794bb538972505", size = 765158, upload-time = "2026-07-09T00:32:19.11Z" }, + { url = "https://files.pythonhosted.org/packages/43/3b/16d8aa8224094519f30b078138e725b8a731bf0a13f1f850e58b5f9b3cc4/fastmcp_slim-3.4.5-py3-none-any.whl", hash = "sha256:bc31217827c4999812543c83ee95ed9a47f3ed1e3fd0bd4f64371e375b748eca", size = 766478, upload-time = "2026-07-27T19:15:18.015Z" }, ] [package.optional-dependencies]