1919 CollectionChecksumError ,
2020 CollectionConfigureError ,
2121 CollectionPropertiesError ,
22+ CollectionRecalculateCountError ,
2223 CollectionRenameError ,
2324 CollectionResponsibleShardError ,
2425 CollectionRevisionError ,
@@ -489,6 +490,26 @@ def response_handler(resp: Response) -> bool:
489490
490491 return await self ._executor .execute (request , response_handler )
491492
493+ async def recalculate_count (self ) -> None :
494+ """Recalculate the document count.
495+
496+ Raises:
497+ CollectionRecalculateCountError: If re-calculation fails.
498+
499+ References:
500+ - `recalculate-the-document-count-of-a-collection <https://docs.arangodb.com/stable/develop/http-api/collections/#recalculate-the-document-count-of-a-collection>`__
501+ """ # noqa: E501
502+ request = Request (
503+ method = Method .PUT ,
504+ endpoint = f"/_api/collection/{ self .name } /recalculateCount" ,
505+ )
506+
507+ def response_handler (resp : Response ) -> None :
508+ if not resp .is_success :
509+ raise CollectionRecalculateCountError (resp , request )
510+
511+ await self ._executor .execute (request , response_handler )
512+
492513 async def properties (self ) -> Result [CollectionProperties ]:
493514 """Return the full properties of the current collection.
494515
@@ -577,7 +598,7 @@ def response_handler(resp: Response) -> CollectionProperties:
577598
578599 return await self ._executor .execute (request , response_handler )
579600
580- async def rename (self , new_name : str ) -> Result [ bool ] :
601+ async def rename (self , new_name : str ) -> None :
581602 """Rename the collection.
582603
583604 Renames may not be reflected immediately in async execution, batch
@@ -590,9 +611,6 @@ async def rename(self, new_name: str) -> Result[bool]:
590611 Args:
591612 new_name (str): New collection name.
592613
593- Returns:
594- bool: `True` if the collection was renamed successfully.
595-
596614 Raises:
597615 CollectionRenameError: If rename fails.
598616
@@ -606,14 +624,13 @@ async def rename(self, new_name: str) -> Result[bool]:
606624 data = self .serializer .dumps (data ),
607625 )
608626
609- def response_handler (resp : Response ) -> bool :
627+ def response_handler (resp : Response ) -> None :
610628 if not resp .is_success :
611629 raise CollectionRenameError (resp , request )
612630 self ._name = new_name
613631 self ._id_prefix = f"{ new_name } /"
614- return True
615632
616- return await self ._executor .execute (request , response_handler )
633+ await self ._executor .execute (request , response_handler )
617634
618635 async def truncate (
619636 self ,
0 commit comments