From f469dd9762b05f923127dc654c271a3737424e5d Mon Sep 17 00:00:00 2001 From: Alex Petenchea Date: Sun, 1 Feb 2026 21:47:28 +0800 Subject: [PATCH 1/3] get_many() no longer returns missing documents --- arangoasync/collection.py | 10 +++++++--- tests/test_document.py | 7 +++---- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/arangoasync/collection.py b/arangoasync/collection.py index cc372bf..fffee4c 100644 --- a/arangoasync/collection.py +++ b/arangoasync/collection.py @@ -934,7 +934,7 @@ async def get_many( documents: Sequence[str | T], allow_dirty_read: Optional[bool] = None, ignore_revs: Optional[bool] = None, - ) -> Result[V]: + ) -> Result[Jsons]: """Return multiple documents ignoring any missing ones. Args: @@ -977,10 +977,14 @@ async def get_many( data=self._doc_serializer.dumps(documents), ) - def response_handler(resp: Response) -> V: + def response_handler(resp: Response) -> Jsons: if not resp.is_success: raise DocumentGetError(resp, request) - return self._doc_deserializer.loads_many(resp.raw_body) + return [ + doc + for doc in self.deserializer.loads_many(resp.raw_body) + if "_id" in doc + ] return await self._executor.execute(request, response_handler) diff --git a/tests/test_document.py b/tests/test_document.py index 741ec34..4733278 100644 --- a/tests/test_document.py +++ b/tests/test_document.py @@ -223,8 +223,8 @@ async def test_document_get_many(doc_col, bad_col, docs): keys = [doc["_key"] for doc in docs] keys.append("invalid_key") many = await doc_col.get_many(keys) - assert len(many) == len(keys) - assert "error" in many[-1] + assert len(many) == len(keys) - 1 + assert "error" not in many[-1] # Test with full documents many = await doc_col.get_many(docs) @@ -237,8 +237,7 @@ async def test_document_get_many(doc_col, bad_col, docs): assert len(many) == 1 assert "error" not in many[0] many = await doc_col.get_many([bad_rev[0]], ignore_revs=False) - assert len(many) == 1 - assert "error" in many[0] + assert len(many) == 0 # Empty list many = await doc_col.get_many([]) From 8f84a1e28431868ef5cc6db356b64c4c364b883e Mon Sep 17 00:00:00 2001 From: Alex Petenchea Date: Sun, 1 Feb 2026 22:01:30 +0800 Subject: [PATCH 2/3] Fixing lint --- .pre-commit-config.yaml | 2 +- arangoasync/auth.py | 2 +- pyproject.toml | 7 ++++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c510998..981a59d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -34,7 +34,7 @@ repos: - id: flake8 - repo: https://github.com/pre-commit/mirrors-mypy - rev: v1.10.0 + rev: v1.15.0 hooks: - id: mypy files: ^arangoasync/ diff --git a/arangoasync/auth.py b/arangoasync/auth.py index a4df28f..fca6076 100644 --- a/arangoasync/auth.py +++ b/arangoasync/auth.py @@ -115,7 +115,7 @@ def _validate(self) -> None: "verify_iat": True, "verify_exp": True, "verify_signature": False, - }, + }, # type: ignore[arg-type] ) self._token_exp = jwt_payload["exp"] diff --git a/pyproject.toml b/pyproject.toml index 6d4c2ea..7e2e1e5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,7 +40,7 @@ dependencies = [ "packaging>=23.1", "aiohttp>=3.9", "multidict>=6.0", - "pyjwt>=2.8.0", + "pyjwt>=2.10.0", ] [tool.setuptools.dynamic] @@ -51,8 +51,8 @@ dev = [ "aiofiles>=24.1.0", "black==26.1.0", "flake8==7.3.0", - "isort>=5.10", - "mypy>=1.10", + "isort>=5.10.1", + "mypy==1.15.0", "pre-commit>=3.7", "pytest>=8.2", "pytest-asyncio>=0.23.8", @@ -92,5 +92,6 @@ profile = "black" [tool.mypy] warn_return_any = true warn_unused_configs = true +warn_unused_ignores = false ignore_missing_imports = true strict = true From 2e4135074a4cf8c2331214bb4ea7201fed2a30d8 Mon Sep 17 00:00:00 2001 From: Alex Petenchea Date: Sun, 1 Feb 2026 22:06:45 +0800 Subject: [PATCH 3/3] Fixing lint --- arangoasync/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arangoasync/version.py b/arangoasync/version.py index 382021f..6849410 100644 --- a/arangoasync/version.py +++ b/arangoasync/version.py @@ -1 +1 @@ -__version__ = "1.0.6" +__version__ = "1.1.0"