diff --git a/contrib/hamilton/contrib/dagworks/conversational_rag/__init__.py b/contrib/hamilton/contrib/dagworks/conversational_rag/__init__.py index 5755d8f5a..cdb9223df 100644 --- a/contrib/hamilton/contrib/dagworks/conversational_rag/__init__.py +++ b/contrib/hamilton/contrib/dagworks/conversational_rag/__init__.py @@ -55,7 +55,9 @@ def standalone_question_prompt(chat_history: list[str], question: str) -> str: ).format(chat_history=chat_history_str, question=question) -def standalone_question(standalone_question_prompt: str, llm_client: openai.OpenAI, model: str) -> str: +def standalone_question( + standalone_question_prompt: str, llm_client: openai.OpenAI, model: str +) -> str: """Asks the LLM to create a standalone question from the prompt. :param standalone_question_prompt: the prompt with context. diff --git a/contrib/hamilton/contrib/dagworks/conversational_rag/test_conversational_rag.py b/contrib/hamilton/contrib/dagworks/conversational_rag/test_conversational_rag.py index 54b45a4da..a115b2db8 100644 --- a/contrib/hamilton/contrib/dagworks/conversational_rag/test_conversational_rag.py +++ b/contrib/hamilton/contrib/dagworks/conversational_rag/test_conversational_rag.py @@ -31,10 +31,8 @@ import openai from hamilton import driver - from hamilton.contrib.dagworks import conversational_rag - # ──────────────────────────── Unit Tests ──────────────────────────── diff --git a/contrib/hamilton/contrib/dagworks/faiss_rag/test_faiss_rag.py b/contrib/hamilton/contrib/dagworks/faiss_rag/test_faiss_rag.py index 9c6786fd3..5c6737e8a 100644 --- a/contrib/hamilton/contrib/dagworks/faiss_rag/test_faiss_rag.py +++ b/contrib/hamilton/contrib/dagworks/faiss_rag/test_faiss_rag.py @@ -36,7 +36,6 @@ # Import the module under test from hamilton.contrib.dagworks import faiss_rag - # ──────────────────────────── Unit Tests ──────────────────────────── @@ -44,7 +43,9 @@ class TestRagPrompt: """Tests for the rag_prompt function (provider-independent).""" def test_rag_prompt_includes_context(self): - result = faiss_rag.rag_prompt(context="Hamilton is a DAG framework", question="What is Hamilton?") + result = faiss_rag.rag_prompt( + context="Hamilton is a DAG framework", question="What is Hamilton?" + ) assert "Hamilton is a DAG framework" in result def test_rag_prompt_includes_question(self): @@ -250,7 +251,12 @@ def test_minimax_rag_response_real_api(self, minimax_api_key): def test_minimax_driver_execution(self, minimax_api_key): """Test Hamilton driver execution with MiniMax config.""" with patch.dict(os.environ, {"MINIMAX_API_KEY": minimax_api_key}): - dr = driver.Builder().with_modules(faiss_rag).with_config({"provider": "minimax"}).build() + dr = ( + driver.Builder() + .with_modules(faiss_rag) + .with_config({"provider": "minimax"}) + .build() + ) client = faiss_rag.llm_client__minimax() result = dr.execute( diff --git a/plugin_tests/h_dask/conftest.py b/plugin_tests/h_dask/conftest.py index 182965bd0..3050e286b 100644 --- a/plugin_tests/h_dask/conftest.py +++ b/plugin_tests/h_dask/conftest.py @@ -18,6 +18,16 @@ # dask_expr got made default, except for python 3.9 and below import sys +# Skip tests that require packages not yet available on Python 3.14 +collect_ignore = [] +if sys.version_info >= (3, 14): + collect_ignore.extend( + [ + # dask - no Python 3.14 support yet + "test_h_dask.py", + ] + ) + if sys.version_info < (3, 10): import dask diff --git a/pyproject.toml b/pyproject.toml index f6d059bd1..e77c476e0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -200,9 +200,10 @@ slack = "https://join.slack.com/t/hamilton-opensource/shared_invite/zt-2niepkra8 #[tool.mypy] #exclude = [] -#[tool.pytest.ini_options] -#pythonpath = [] -#testpaths = [] +[tool.pytest.ini_options] +markers = [ + "asyncio: mark test as requiring asyncio", +] [tool.ruff] line-length = 100 diff --git a/tests/conftest.py b/tests/conftest.py index 7ed250b32..114e838a3 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -39,5 +39,25 @@ "plugins/test_kedro_extensions.py", # lancedb - no Python 3.14 support yet "plugins/test_huggingface_extensions.py", + # pandera - no Python 3.14 support yet + "integrations/pandera/test_pandera_data_quality.py", + # dlt - no Python 3.14 support yet + "plugins/test_dlt_extensions.py", + # diskcache - no Python 3.14 support yet + "plugins/test_h_diskcache.py", + # pyarrow - no Python 3.14 support yet + "plugins/test_h_pyarrow.py", + # schema - no Python 3.14 support yet + "plugins/test_h_schema.py", + # tqdm - no Python 3.14 support yet + "plugins/test_h_tqdm.py", + # matplotlib - no Python 3.14 support yet + "plugins/test_matplotlib_extensions.py", + # pandas - no Python 3.14 support yet + "plugins/test_pandas_extensions.py", + # pydantic - no Python 3.14 support yet + "plugins/test_pydantic_extensions.py", + # sklearn - no Python 3.14 support yet + "plugins/test_sklearn_plot_extensions.py", ] ) diff --git a/ui/backend/tests/test_build.py b/ui/backend/tests/test_build.py index e362ee1a2..35160d067 100644 --- a/ui/backend/tests/test_build.py +++ b/ui/backend/tests/test_build.py @@ -150,9 +150,9 @@ def test_settings_mini_mode_configured(self): "Django settings missing mini mode configuration" ) - # Check for STATICFILES_DIRS pointing to build/static/ or build/assets/ - assert "build/static/" in settings_content or "build/assets/" in settings_content, ( - "Django settings missing build/static/ or build/assets/ in STATICFILES_DIRS" + # Check for STATICFILES_DIRS pointing to build/static or build/assets + assert "build/static" in settings_content or "build/assets" in settings_content, ( + "Django settings missing build/static or build/assets in STATICFILES_DIRS" ) # Check for MEDIA_ROOT pointing to build/ diff --git a/ui/frontend/package-lock.json b/ui/frontend/package-lock.json index 6baee24b9..0fe705056 100644 --- a/ui/frontend/package-lock.json +++ b/ui/frontend/package-lock.json @@ -128,6 +128,7 @@ "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", @@ -330,6 +331,7 @@ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", "license": "MIT", + "peer": true, "engines": { "node": ">=6.9.0" } @@ -1450,6 +1452,7 @@ "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=8.0.0" } @@ -3039,6 +3042,7 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.11.tgz", "integrity": "sha512-BH7YwL6rA93ReqeQS1c4bsPpcfOmJasG+Fkr6Y59q83f9M1WcBRHR2vM+P9eOisYRcN3ujQoiZY8uk5W+1WL8w==", "license": "MIT", + "peer": true, "dependencies": { "undici-types": "~6.21.0" } @@ -3066,6 +3070,7 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.28.tgz", "integrity": "sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==", "license": "MIT", + "peer": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.2.2" @@ -3245,6 +3250,7 @@ "integrity": "sha512-IgSWvLobTDOjnaxAfDTIHaECbkNlAlKv2j5SjpB2v7QHKv1FIfjwMy8FsDbVfDX/KjmCmYICcw7uGaXLhtsLNg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.56.0", "@typescript-eslint/types": "8.56.0", @@ -3529,6 +3535,7 @@ "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -3988,6 +3995,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -4156,6 +4164,7 @@ "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.5.1.tgz", "integrity": "sha512-GIjfiT9dbmHRiYi6Nl2yFCq7kkwdkp1W/lp2J99rX0yo9tgJGn3lKQATztIjb5tVtevcBtIdICNWqlq5+E8/Pw==", "license": "MIT", + "peer": true, "dependencies": { "@kurkle/color": "^0.3.0" }, @@ -4494,6 +4503,7 @@ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", "license": "ISC", + "peer": true, "engines": { "node": ">=12" } @@ -4601,6 +4611,7 @@ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.21.0" }, @@ -4616,7 +4627,8 @@ "version": "1.11.19", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/debug": { "version": "4.4.3", @@ -5122,6 +5134,7 @@ "integrity": "sha512-VmQ+sifHUbI/IcSopBCF/HO3YiHQx/AVd3UVyYL6weuwW+HvON9VYn5l6Zl1WZzPWXPNZrSQpxwkkZ/VuvJZzg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -6979,6 +6992,7 @@ "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", "license": "MIT", + "peer": true, "bin": { "jiti": "bin/jiti.js" } @@ -8555,6 +8569,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -8924,6 +8939,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -8966,6 +8982,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -9044,6 +9061,7 @@ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz", "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==", "license": "MIT", + "peer": true, "dependencies": { "@types/use-sync-external-store": "^0.0.6", "use-sync-external-store": "^1.4.0" @@ -9092,6 +9110,7 @@ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.3.tgz", "integrity": "sha512-pxPcv1AczD4vso7G4Z3TKcvlxK7g7TNt3/FNGMhfqyntocvYKj+GCatfigGDjbLozC4baguJ0ReCigoDJXb0ag==", "license": "MIT", + "peer": true, "dependencies": { "@remix-run/router": "1.23.2", "react-router": "6.30.3" @@ -9280,7 +9299,8 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/redux-persist": { "version": "6.0.0", @@ -10194,6 +10214,7 @@ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", "license": "MIT", + "peer": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", @@ -10517,6 +10538,7 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -10793,6 +10815,7 @@ "integrity": "sha512-2N/55r4JDJ4gdrCvGgINMy+HH3iRpNIz8K6SFwVsA+JbQScLiC+clmAxBgwiSPgcG9U15QmvqCGWzMbqda5zGQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4",