diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 102813c..12a7c3d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -60,8 +60,8 @@ repos: - id: ty-check name: ty-check - language: python - entry: uvx ty check + language: system + entry: uv run --locked ty check pass_filenames: false args: [--python=.venv/, --exclude=examples/] diff --git a/pyproject.toml b/pyproject.toml index 45a5cc5..e91b140 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -75,6 +75,7 @@ dev = [ "ruff>=0.14.2", "skylos>=3.2.3", "together>=2.1.1", + "ty>=0.0.49", "xai-sdk>=1.7.0", ] diff --git a/requirements.txt b/requirements.txt index 7295c9a..90f40b0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -786,6 +786,7 @@ tree-sitter==0.25.2 # via skylos tree-sitter-typescript==0.23.2 # via skylos +ty==0.0.49 typer==0.20.0 # via # batchling diff --git a/tests/test_api.py b/tests/test_api.py index f9447be..9475d85 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -135,4 +135,4 @@ async def test_batchify_idempotent_hooks(reset_hooks): async def test_batchify_rejects_target_keyword(reset_hooks, reset_context): """Test that legacy target keyword is rejected.""" with pytest.raises(expected_exception=TypeError, match="unexpected keyword argument 'target'"): - _ = batchify(target=object(), batch_size=10) # type: ignore[call-arg] + _ = batchify(target=object(), batch_size=10) # type: ignore[call-arg] # ty: ignore[unknown-argument] diff --git a/tests/test_core.py b/tests/test_core.py index b204b20..0ace0b8 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -1360,8 +1360,8 @@ async def fake_parse_poll_response( progress_percent=100.0, ) - provider.build_poll_request_spec = fake_build_poll_request_spec # type: ignore[method-assign] - provider.parse_poll_response = fake_parse_poll_response # type: ignore[method-assign] + provider.build_poll_request_spec = fake_build_poll_request_spec # type: ignore[method-assign] # ty: ignore[invalid-assignment] + provider.parse_poll_response = fake_parse_poll_response # type: ignore[method-assign] # ty: ignore[invalid-assignment] def handler(request: httpx.Request) -> httpx.Response: seen["request_url"] = str(object=request.url) @@ -1411,7 +1411,7 @@ def fake_build_resume_context( api_headers={"X-Custom": "1"}, ) - provider.build_resume_context = fake_build_resume_context # type: ignore[method-assign] + provider.build_resume_context = fake_build_resume_context # type: ignore[method-assign] # ty: ignore[invalid-assignment] await batcher._attach_cached_request( provider=provider, @@ -1492,7 +1492,7 @@ async def fake_fetch_results( ) } - provider.fetch_results = fake_fetch_results # type: ignore[method-assign] + provider.fetch_results = fake_fetch_results # type: ignore[method-assign] # ty: ignore[invalid-assignment] await batcher._resolve_batch_results( base_url="https://api.openai.com", @@ -1737,7 +1737,7 @@ async def fake_process_batch(*, queue_key: QueueKey, requests: list[_PendingRequ captured["request_queue_key"] = requests[0].queue_key called_event.set() - batcher._process_batch = fake_process_batch # type: ignore[method-assign] + batcher._process_batch = fake_process_batch # type: ignore[method-assign] # ty: ignore[invalid-assignment] queue_key = _queue_key(provider_name=provider.name) await batcher._submit_requests(queue_key=queue_key, requests=[request]) await asyncio.wait_for(called_event.wait(), timeout=1.0) @@ -1785,7 +1785,7 @@ async def fake_process_batch( captured["completion_window"] = completion_window raise RuntimeError("provider call captured") - provider.process_batch = fake_process_batch # type: ignore[method-assign] + provider.process_batch = fake_process_batch # type: ignore[method-assign] # ty: ignore[invalid-assignment] await batcher._process_batch(queue_key=queue_key, requests=[request]) assert captured["queue_key"] == queue_key diff --git a/uv.lock b/uv.lock index 4620aba..c939a8b 100644 --- a/uv.lock +++ b/uv.lock @@ -351,6 +351,7 @@ dev = [ { name = "ruff" }, { name = "skylos" }, { name = "together" }, + { name = "ty" }, { name = "xai-sdk" }, ] @@ -390,6 +391,7 @@ dev = [ { name = "ruff", specifier = ">=0.14.2" }, { name = "skylos", specifier = ">=3.2.3" }, { name = "together", specifier = ">=2.1.1" }, + { name = "ty", specifier = ">=0.0.49" }, { name = "xai-sdk", specifier = ">=1.7.0" }, ] @@ -4980,6 +4982,31 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/9f/e4/81f9a935789233cf412a0ed5fe04c883841d2c8fb0b7e075958a35c65032/tree_sitter_typescript-0.23.2-cp39-abi3-win_arm64.whl", hash = "sha256:05db58f70b95ef0ea126db5560f3775692f609589ed6f8dd0af84b7f19f1cbb7", size = 274052, upload-time = "2024-11-11T02:36:09.514Z" }, ] +[[package]] +name = "ty" +version = "0.0.49" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1d/8d/37cb91808069509d43a2a11743e12f1e854fd808dbef2203309d256718cd/ty-0.0.49.tar.gz", hash = "sha256:0a027bd0c9c75d035641a365d087ad883446057f9be0b9826251c2aecafbf145", size = 5884753, upload-time = "2026-06-12T03:08:20.221Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ca/de/9237c6a96356612dd0393db1e94cf21f903616adf3a3701bf3da6e4adc92/ty-0.0.49-py3-none-linux_armv6l.whl", hash = "sha256:12c0c4310b936d762a8586c210b53d4fa4bb361a04429afa89bf84b922e5e065", size = 11834671, upload-time = "2026-06-12T03:07:53.062Z" }, + { url = "https://files.pythonhosted.org/packages/8f/15/daf5a14a5e07012277d450c75325c94614e2acfec4c620c881486118c410/ty-0.0.49-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:737bfdc2caf9712a8580944dcdc80a450a37a4f2bc83c8fa9b7433b374f9e471", size = 11589570, upload-time = "2026-06-12T03:08:25.779Z" }, + { url = "https://files.pythonhosted.org/packages/7d/58/30bdf98436488aca25f0763bf7f92a061528d42461b686453029e845e4c5/ty-0.0.49-py3-none-macosx_11_0_arm64.whl", hash = "sha256:ab90c1baf3b1701d282fce4b02fa552a962d109f8972c46ef6b22429503bfea4", size = 10985236, upload-time = "2026-06-12T03:08:36.664Z" }, + { url = "https://files.pythonhosted.org/packages/22/45/ece503e4a1396e13a1a9a0cde51afe476a6506a1d557eeadf8ad45c83bc0/ty-0.0.49-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4ce8ecf6ba6fc79bd137cc0557a754f7e5f2dfe9436412551d480d680e248ad", size = 11504302, upload-time = "2026-06-12T03:08:01.664Z" }, + { url = "https://files.pythonhosted.org/packages/17/dc/5d09333d289dfbca1804eaade125c9e8a1a992a2a592a8b80c5e9b589ca9/ty-0.0.49-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:10d85c6865c984e78661e0bd20b180514b4a289739224e84816e342bdf381e04", size = 11626629, upload-time = "2026-06-12T03:08:06.844Z" }, + { url = "https://files.pythonhosted.org/packages/f2/36/155f41c9dd7237c4b609211f29f77755a139ee6218605dadc7fe21d5e3c8/ty-0.0.49-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d96a67a206619e01fa92f35a22267ec634bba62be24b1d0e947020cc179995b", size = 12074481, upload-time = "2026-06-12T03:08:09.643Z" }, + { url = "https://files.pythonhosted.org/packages/96/4c/998ee13cd5045f1f8b36982de7343163832ac53f27debe01b0de0e8bd968/ty-0.0.49-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3de9f648564e0a66344ef397770387cb0d093735f8679d2c5a08a4741e79814d", size = 12678042, upload-time = "2026-06-12T03:08:39.319Z" }, + { url = "https://files.pythonhosted.org/packages/85/c9/9a505aba85c41ce54cbcaa14f8d79aa084b86151d2d70df11c4655b92898/ty-0.0.49-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5779179ab397d15f8c9dbb8f506ec1b1745f54eac639982f76ef3ce538943b50", size = 12316194, upload-time = "2026-06-12T03:08:18.023Z" }, + { url = "https://files.pythonhosted.org/packages/c9/b8/ded37fb93503294abbc83c36470bb1413bea05048b745881d4470b518a06/ty-0.0.49-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:792d4974e93cc09bd32f934586080bbbe21b8e777099cb521cb2de18b68a49f0", size = 12145507, upload-time = "2026-06-12T03:07:56.505Z" }, + { url = "https://files.pythonhosted.org/packages/2f/07/392e80d78f02445f695b815bb9eb0fffacda68b03faee38c900f7b990815/ty-0.0.49-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:727bda86deb136073e525c2e78d60e38aedcce5d80579170844a52bbf7c1440d", size = 12365967, upload-time = "2026-06-12T03:08:12.553Z" }, + { url = "https://files.pythonhosted.org/packages/50/d3/31b0c2a7fbedd3373e389cb1d81b8d2128f6f868fafb46557736a6f9aca8/ty-0.0.49-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:4f2fc2bc4a8d2ff1cca59fd94772cabdfec4062d47a0b3a0784be46d94d0540b", size = 11475283, upload-time = "2026-06-12T03:08:28.334Z" }, + { url = "https://files.pythonhosted.org/packages/5a/5b/329e101638920b468a3bb63059c9f66ef99b44aac501222c44832a507321/ty-0.0.49-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:3724bd9badef333321578b6a941fbc571ebf49141ec2356a8590fbe4c9aa588d", size = 11645343, upload-time = "2026-06-12T03:08:15.246Z" }, + { url = "https://files.pythonhosted.org/packages/a9/76/c897e615e32f80ca81c8c1bc49b9a1f72ff9e3cfea0f8345ba505fe28472/ty-0.0.49-py3-none-musllinux_1_2_i686.whl", hash = "sha256:166c6eb52ee4af3c5a9bb267d165d93000daa55c6758cd8ff3199741fb75917d", size = 11725585, upload-time = "2026-06-12T03:08:33.915Z" }, + { url = "https://files.pythonhosted.org/packages/59/e1/fdb42ee239f618800842681af5bb8598117e74512c10974a8b7b9086a898/ty-0.0.49-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:91e81d832c287b05782ee32eb1b801f62c1fa08df37d589d2b88c3f1d51c9731", size = 12237261, upload-time = "2026-06-12T03:08:31.105Z" }, + { url = "https://files.pythonhosted.org/packages/98/0f/a2d6a5fc9d0786cbeb3c200786da4e18c203589be3984bb5def83ca92320/ty-0.0.49-py3-none-win32.whl", hash = "sha256:7186af5ca9829d1f5d8916bcf767b8e819bfbf61b1b8ec843bb3fc699cb502e1", size = 11100789, upload-time = "2026-06-12T03:07:59.092Z" }, + { url = "https://files.pythonhosted.org/packages/d0/9d/473ac8bc57b5a2d121da893bf9dd74a118efb19a01d711df1a6e397f05cc/ty-0.0.49-py3-none-win_amd64.whl", hash = "sha256:ae2142fc126a01effcca0c222908b0e6654b5ba1266d4e4d406e4866aef8e1d1", size = 12204644, upload-time = "2026-06-12T03:08:04.327Z" }, + { url = "https://files.pythonhosted.org/packages/ef/a2/8959249da951ba3977fee20e688d28678b8a1d30a9ed4464228a85d45853/ty-0.0.49-py3-none-win_arm64.whl", hash = "sha256:75d5e2e7649765f31f4bed6c8adb149a75b18edd3fa6336dac4d0efc1a66466f", size = 11558965, upload-time = "2026-06-12T03:08:23.012Z" }, +] + [[package]] name = "typer" version = "0.20.0"