diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index e0c3be3e..88598937 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -31,7 +31,7 @@ jobs: - name: 'Checkout repository' uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - name: 'Dependency Review' - uses: actions/dependency-review-action@2031cfc080254a8a887f58cffee85186f0e49e48 # v4 + uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0 # Commonly enabled options, see https://github.com/actions/dependency-review-action#configuration-options for all available options. with: comment-summary-in-pr: always diff --git a/.github/workflows/publish-docker.yml b/.github/workflows/publish-docker.yml index 1f078934..a9ac1be1 100644 --- a/.github/workflows/publish-docker.yml +++ b/.github/workflows/publish-docker.yml @@ -15,19 +15,19 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - name: Log in to Docker Hub - uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4 + uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6 + uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9 # v6 with: images: falkordb/queryweaver - name: Build and push Docker image - uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7 + uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7 with: context: . push: true diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 07167ed4..f130446d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -119,7 +119,7 @@ jobs: python-version: '3.12' - name: Install uv - uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5.4.2 + uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 with: version: "latest" diff --git a/app/package-lock.json b/app/package-lock.json index 9f4afa98..c54eace5 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -1,12 +1,12 @@ { "name": "queryweaver-app", - "version": "0.1.0", + "version": "0.3.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "queryweaver-app", - "version": "0.1.0", + "version": "0.3.0", "dependencies": { "@falkordb/canvas": "^0.0.45", "@hookform/resolvers": "^5.2.2", @@ -68,13 +68,13 @@ "@types/node": "^22.16.5", "@types/react": "^18.3.23", "@types/react-dom": "^18.3.7", - "@vitejs/plugin-react-swc": "^4.3.0", + "@vitejs/plugin-react-swc": "^4.3.1", "autoprefixer": "^10.4.27", "eslint": "^9.32.0", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-refresh": "^0.4.20", "globals": "^17.3.0", - "postcss": "^8.5.14", + "postcss": "^8.5.15", "tailwindcss": "^3.4.17", "typescript": "^5.8.3", "typescript-eslint": "^8.57.0", @@ -2339,9 +2339,9 @@ "license": "MIT" }, "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-rc.7", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.7.tgz", - "integrity": "sha512-qujRfC8sFVInYSPPMLQByRh7zhwkGFS4+tyMQ83srV1qrxL4g8E2tyxVVyxd0+8QeBM1mIk9KbWxkegRr76XzA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", "dev": true, "license": "MIT" }, @@ -3524,13 +3524,13 @@ } }, "node_modules/@vitejs/plugin-react-swc": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-4.3.0.tgz", - "integrity": "sha512-mOkXCII839dHyAt/gpoSlm28JIVDwhZ6tnG6wJxUy2bmOx7UaPjvOyIDf3SFv5s7Eo7HVaq6kRcu6YMEzt5Z7w==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-4.3.1.tgz", + "integrity": "sha512-PaeokKjAGraNN+s5SIApgsktnJprIyt3zgEIu7awnEdfn29QiB2crTcCzyi2XGpX9rUnTc0cKU07Wm0N0g7H2w==", "dev": true, "license": "MIT", "dependencies": { - "@rolldown/pluginutils": "1.0.0-rc.7", + "@rolldown/pluginutils": "^1.0.0", "@swc/core": "^1.15.11" }, "engines": { @@ -5217,7 +5217,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.11", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", "funding": [ { "type": "github", @@ -5377,9 +5379,9 @@ } }, "node_modules/postcss": { - "version": "8.5.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.14.tgz", - "integrity": "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==", + "version": "8.5.15", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", + "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", "funding": [ { "type": "opencollective", @@ -5396,7 +5398,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.11", + "nanoid": "^3.3.12", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, diff --git a/app/package.json b/app/package.json index 17c7b580..9e1eec0f 100644 --- a/app/package.json +++ b/app/package.json @@ -71,13 +71,13 @@ "@types/node": "^22.16.5", "@types/react": "^18.3.23", "@types/react-dom": "^18.3.7", - "@vitejs/plugin-react-swc": "^4.3.0", + "@vitejs/plugin-react-swc": "^4.3.1", "autoprefixer": "^10.4.27", "eslint": "^9.32.0", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-refresh": "^0.4.20", "globals": "^17.3.0", - "postcss": "^8.5.14", + "postcss": "^8.5.15", "tailwindcss": "^3.4.17", "typescript": "^5.8.3", "typescript-eslint": "^8.57.0", diff --git a/pyproject.toml b/pyproject.toml index d5379bf5..3307578f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,9 +26,9 @@ classifiers = [ # not optional. redis is provided transitively by falkordb. dependencies = [ "litellm>=1.83.0", - "falkordb~=1.6.0", + "falkordb~=1.6.1", "psycopg2-binary~=2.9.12", - "pymysql~=1.1.0", + "pymysql~=1.2.0", "jsonschema~=4.26.0", "tqdm~=4.67.3", "pydantic>=2.0", @@ -40,7 +40,7 @@ dependencies = [ # queries are run with use_memory=True. Lazily imported by the SDK. memory = [ "openai>=1.0.0", - "graphiti-core>=0.28.1", + "graphiti-core>=0.29.1", ] # Server dependencies (FastAPI, auth, etc.). Used to run the full app from a @@ -50,10 +50,10 @@ server = [ "uvicorn~=0.46.0", "authlib~=1.7.0", "itsdangerous~=2.2.0", - "python-multipart~=0.0.27", + "python-multipart~=0.0.29", "jinja2~=3.1.4", "fastmcp>=3.2.4", - "graphiti-core>=0.28.1", + "graphiti-core>=0.29.1", "snowflake-connector-python~=4.4.0", "aiohttp>=3.13.5", ] @@ -64,7 +64,7 @@ dev = [ "pytest-asyncio~=1.3.0", "pylint~=4.0.3", "playwright~=1.59.0", - "pytest-playwright~=0.7.1", + "pytest-playwright~=0.8.0", ] # All dependencies (server + dev) @@ -84,7 +84,7 @@ dev = [ "pytest~=9.0.3", "pylint~=4.0.3", "playwright~=1.59.0", - "pytest-playwright~=0.7.1", + "pytest-playwright~=0.8.0", "pytest-asyncio~=1.3.0", ] diff --git a/uv.lock b/uv.lock index 94143275..1b0e2c92 100644 --- a/uv.lock +++ b/uv.lock @@ -556,15 +556,15 @@ wheels = [ [[package]] name = "falkordb" -version = "1.6.0" +version = "1.6.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "python-dateutil" }, { name = "redis" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/72/52/5495fcba8e21c269a605092a7c4a8b33ceecae283dbfe76fc53f7f5b50ab/falkordb-1.6.0.tar.gz", hash = "sha256:5c307d973f3fc3987a18478ebd5882f7e842d4225463a8ef5e026970ebfba8c6", size = 98157, upload-time = "2026-02-21T06:36:19.107Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c8/3a/58da510e5800a5cdbf9591111e4287cbf68b475bf074db12a94e5db8bcea/falkordb-1.6.1.tar.gz", hash = "sha256:bbef448a0b43e00ff3062bd6201368618d7b36e969d16ba71e8b8e3fa90873d4", size = 103185, upload-time = "2026-04-28T13:24:44.524Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/eb/8b/59ec60885abd3b6b2b3a1e5917627c3cae656b4cff7f847c5217ec3dc952/falkordb-1.6.0-py3-none-any.whl", hash = "sha256:0f190e9d6104595fd51ece4f1e7b5d49d62cfee346d94151d7986a138fd90d89", size = 37378, upload-time = "2026-02-21T06:36:17.769Z" }, + { url = "https://files.pythonhosted.org/packages/90/02/1cf9cef72228ca2b2776b4ed0cb2645298ddcc57c1fe2c545cd46bc11eae/falkordb-1.6.1-py3-none-any.whl", hash = "sha256:cf51caeb433c04db303de5967a0c2590675fcc0354e80997870b1e0497d30c34", size = 37802, upload-time = "2026-04-28T13:24:45.677Z" }, ] [[package]] @@ -766,7 +766,7 @@ wheels = [ [[package]] name = "graphiti-core" -version = "0.28.2" +version = "0.29.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "neo4j" }, @@ -777,9 +777,9 @@ dependencies = [ { name = "python-dotenv" }, { name = "tenacity" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/62/6d/81b78aec2030bff0030bbabb8b227a6fa3c5fb49fb11e8501e7d0f39f3fe/graphiti_core-0.28.2.tar.gz", hash = "sha256:9b2a72f117827e015a21b610eb2c3acbe05310b79736abef7372e81247578e9d", size = 6846195, upload-time = "2026-03-11T16:20:02.736Z" } +sdist = { url = "https://files.pythonhosted.org/packages/08/a6/0876082003a7af08f5627c0fb27b265f403a6631efe341a4a6b4bc905c50/graphiti_core-0.29.1.tar.gz", hash = "sha256:050d7cb93e3125100ae45a2bfebadcaba1601b37575330744e834156284938b3", size = 6912025, upload-time = "2026-05-21T03:33:25.069Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/81/cd/e6203f1fee0a8e2a797f2d5f9a867513e0c63af4e19fdd1c5a7e14a47670/graphiti_core-0.28.2-py3-none-any.whl", hash = "sha256:4e1c19b7bc70a73a612a473144ed4b3fe615ac6d4c5d6b10f48e206a858bcb53", size = 314919, upload-time = "2026-03-11T16:20:01.037Z" }, + { url = "https://files.pythonhosted.org/packages/ed/49/e3074ab16e54f6d3f1d5fb6c3bd7ae21f5ce498ca3cb92696bd881d6eef0/graphiti_core-0.29.1-py3-none-any.whl", hash = "sha256:c04567261cc21853c66424d2378f4830ef4c6c02d7f6fb5518c215f60364f474", size = 354427, upload-time = "2026-05-21T03:33:22.939Z" }, ] [[package]] @@ -1945,11 +1945,11 @@ wheels = [ [[package]] name = "pymysql" -version = "1.1.2" +version = "1.2.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f5/ae/1fe3fcd9f959efa0ebe200b8de88b5a5ce3e767e38c7ac32fb179f16a388/pymysql-1.1.2.tar.gz", hash = "sha256:4961d3e165614ae65014e361811a724e2044ad3ea3739de9903ae7c21f539f03", size = 48258, upload-time = "2025-08-24T12:55:55.146Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c9/bc/1c6a92f385940f727daeecf3bacaf186e03875dff57197801046c583bcf0/pymysql-1.2.0.tar.gz", hash = "sha256:6c7b17ca686988104d7426c27895b455cdeea3e9d3ceb1270f0c3704fead8c33", size = 49021, upload-time = "2026-05-19T08:26:22.302Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7c/4c/ad33b92b9864cbde84f259d5df035a6447f91891f5be77788e2a3892bce3/pymysql-1.1.2-py3-none-any.whl", hash = "sha256:e6b1d89711dd51f8f74b1631fe08f039e7d76cf67a42a323d3178f0f25762ed9", size = 45300, upload-time = "2025-08-24T12:55:53.394Z" }, + { url = "https://files.pythonhosted.org/packages/c4/bd/2534e130295c8cfd4f0a2e31623baab7502278f1e97bcfe61db75656a77f/pymysql-1.2.0-py3-none-any.whl", hash = "sha256:62169ce6d5510f08e140c5e7990ee884a9764024e4a9a27b2cc11f1099322ae0", size = 45716, upload-time = "2026-05-19T08:26:20.974Z" }, ] [[package]] @@ -2018,7 +2018,7 @@ wheels = [ [[package]] name = "pytest-playwright" -version = "0.7.2" +version = "0.8.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "playwright" }, @@ -2026,9 +2026,9 @@ dependencies = [ { name = "pytest-base-url" }, { name = "python-slugify" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e8/6b/913e36aa421b35689ec95ed953ff7e8df3f2ee1c7b8ab2a3f1fd39d95faf/pytest_playwright-0.7.2.tar.gz", hash = "sha256:247b61123b28c7e8febb993a187a07e54f14a9aa04edc166f7a976d88f04c770", size = 16928, upload-time = "2025-11-24T03:43:22.53Z" } +sdist = { url = "https://files.pythonhosted.org/packages/58/ef/172eb8e23c80491fc72f1401c72f9305663873649351306a38b18406b0c9/pytest_playwright-0.8.0.tar.gz", hash = "sha256:7888d4a2443160c82e0c506c437076679f86b36d1910427250d90fbf1843a981", size = 17132, upload-time = "2026-05-18T10:16:15.919Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/76/61/4d333d8354ea2bea2c2f01bad0a4aa3c1262de20e1241f78e73360e9b620/pytest_playwright-0.7.2-py3-none-any.whl", hash = "sha256:8084e015b2b3ecff483c2160f1c8219b38b66c0d4578b23c0f700d1b0240ea38", size = 16881, upload-time = "2025-11-24T03:43:24.423Z" }, + { url = "https://files.pythonhosted.org/packages/fe/71/1c545fac6a9054b52b3771238fb2dc6e8f1d0ccec116e1c7786ec191887c/pytest_playwright-0.8.0-py3-none-any.whl", hash = "sha256:856aae6efd4bc055f2ef229c647768760bcaad5cd3a5983c314ac260a974a933", size = 17143, upload-time = "2026-05-18T10:16:18.226Z" }, ] [[package]] @@ -2054,11 +2054,11 @@ wheels = [ [[package]] name = "python-multipart" -version = "0.0.27" +version = "0.0.29" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/69/9b/f23807317a113dc36e74e75eb265a02dd1a4d9082abc3c1064acd22997c4/python_multipart-0.0.27.tar.gz", hash = "sha256:9870a6a8c5a20a5bf4f07c017bd1489006ff8836cff097b6933355ee2b49b602", size = 44043, upload-time = "2026-04-27T10:51:26.649Z" } +sdist = { url = "https://files.pythonhosted.org/packages/4e/fe/70bd71a6738b09a0bdf6480ca6436b167469ca4578b2a0efbe390b4b0e70/python_multipart-0.0.29.tar.gz", hash = "sha256:643e93849196645e2dbdd81a0f8829a23123ad7f797a84a364c6fb3563f18904", size = 45678, upload-time = "2026-05-17T17:29:47.654Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/99/78/4126abcbdbd3c559d43e0db7f7b9173fc6befe45d39a2856cc0b8ec2a5a6/python_multipart-0.0.27-py3-none-any.whl", hash = "sha256:6fccfad17a27334bd0193681b369f476eda3409f17381a2d65aa7df3f7275645", size = 29254, upload-time = "2026-04-27T10:51:24.997Z" }, + { url = "https://files.pythonhosted.org/packages/8f/cb/769cfc37177252872a45a71f3fbdde9d51b471a3f3c14bfe95dde3407386/python_multipart-0.0.29-py3-none-any.whl", hash = "sha256:2ddcc971cef266225f54f552d8fa10bcfbb1f14446caec199060daac59ff2d69", size = 29640, upload-time = "2026-05-17T17:29:45.69Z" }, ] [[package]] @@ -2224,14 +2224,14 @@ requires-dist = [ { name = "aiohttp", marker = "extra == 'server'", specifier = ">=3.13.5" }, { name = "authlib", marker = "extra == 'all'", specifier = "~=1.7.0" }, { name = "authlib", marker = "extra == 'server'", specifier = "~=1.7.0" }, - { name = "falkordb", specifier = "~=1.6.0" }, + { name = "falkordb", specifier = "~=1.6.1" }, { name = "fastapi", marker = "extra == 'all'", specifier = "~=0.136.1" }, { name = "fastapi", marker = "extra == 'server'", specifier = "~=0.136.1" }, { name = "fastmcp", marker = "extra == 'all'", specifier = ">=3.2.4" }, { name = "fastmcp", marker = "extra == 'server'", specifier = ">=3.2.4" }, - { name = "graphiti-core", marker = "extra == 'all'", specifier = ">=0.28.1" }, - { name = "graphiti-core", marker = "extra == 'memory'", specifier = ">=0.28.1" }, - { name = "graphiti-core", marker = "extra == 'server'", specifier = ">=0.28.1" }, + { name = "graphiti-core", marker = "extra == 'all'", specifier = ">=0.29.1" }, + { name = "graphiti-core", marker = "extra == 'memory'", specifier = ">=0.29.1" }, + { name = "graphiti-core", marker = "extra == 'server'", specifier = ">=0.29.1" }, { name = "itsdangerous", marker = "extra == 'all'", specifier = "~=2.2.0" }, { name = "itsdangerous", marker = "extra == 'server'", specifier = "~=2.2.0" }, { name = "jinja2", marker = "extra == 'all'", specifier = "~=3.1.4" }, @@ -2245,16 +2245,16 @@ requires-dist = [ { name = "pydantic", specifier = ">=2.0" }, { name = "pylint", marker = "extra == 'all'", specifier = "~=4.0.3" }, { name = "pylint", marker = "extra == 'dev'", specifier = "~=4.0.3" }, - { name = "pymysql", specifier = "~=1.1.0" }, + { name = "pymysql", specifier = "~=1.2.0" }, { name = "pytest", marker = "extra == 'all'", specifier = "~=9.0.3" }, { name = "pytest", marker = "extra == 'dev'", specifier = "~=9.0.3" }, { name = "pytest-asyncio", marker = "extra == 'all'", specifier = "~=1.3.0" }, { name = "pytest-asyncio", marker = "extra == 'dev'", specifier = "~=1.3.0" }, - { name = "pytest-playwright", marker = "extra == 'all'", specifier = "~=0.7.1" }, - { name = "pytest-playwright", marker = "extra == 'dev'", specifier = "~=0.7.1" }, + { name = "pytest-playwright", marker = "extra == 'all'", specifier = "~=0.8.0" }, + { name = "pytest-playwright", marker = "extra == 'dev'", specifier = "~=0.8.0" }, { name = "python-dotenv", specifier = "~=1.2.2" }, - { name = "python-multipart", marker = "extra == 'all'", specifier = "~=0.0.27" }, - { name = "python-multipart", marker = "extra == 'server'", specifier = "~=0.0.27" }, + { name = "python-multipart", marker = "extra == 'all'", specifier = "~=0.0.29" }, + { name = "python-multipart", marker = "extra == 'server'", specifier = "~=0.0.29" }, { name = "snowflake-connector-python", marker = "extra == 'all'", specifier = "~=4.4.0" }, { name = "snowflake-connector-python", marker = "extra == 'server'", specifier = "~=4.4.0" }, { name = "tqdm", specifier = "~=4.67.3" }, @@ -2269,7 +2269,7 @@ dev = [ { name = "pylint", specifier = "~=4.0.3" }, { name = "pytest", specifier = "~=9.0.3" }, { name = "pytest-asyncio", specifier = "~=1.3.0" }, - { name = "pytest-playwright", specifier = "~=0.7.1" }, + { name = "pytest-playwright", specifier = "~=0.8.0" }, ] [[package]] @@ -2802,11 +2802,11 @@ wheels = [ [[package]] name = "urllib3" -version = "2.6.3" +version = "2.7.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" } +sdist = { url = "https://files.pythonhosted.org/packages/53/0c/06f8b233b8fd13b9e5ee11424ef85419ba0d8ba0b3138bf360be2ff56953/urllib3-2.7.0.tar.gz", hash = "sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c", size = 433602, upload-time = "2026-05-07T16:13:18.596Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" }, + { url = "https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl", hash = "sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897", size = 131087, upload-time = "2026-05-07T16:13:17.151Z" }, ] [[package]]