19
19
CollectionChecksumError ,
20
20
CollectionConfigureError ,
21
21
CollectionPropertiesError ,
22
+ CollectionRecalculateCountError ,
22
23
CollectionRenameError ,
23
24
CollectionResponsibleShardError ,
24
25
CollectionRevisionError ,
@@ -489,6 +490,26 @@ def response_handler(resp: Response) -> bool:
489
490
490
491
return await self ._executor .execute (request , response_handler )
491
492
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
+
492
513
async def properties (self ) -> Result [CollectionProperties ]:
493
514
"""Return the full properties of the current collection.
494
515
@@ -577,7 +598,7 @@ def response_handler(resp: Response) -> CollectionProperties:
577
598
578
599
return await self ._executor .execute (request , response_handler )
579
600
580
- async def rename (self , new_name : str ) -> Result [ bool ] :
601
+ async def rename (self , new_name : str ) -> None :
581
602
"""Rename the collection.
582
603
583
604
Renames may not be reflected immediately in async execution, batch
@@ -590,9 +611,6 @@ async def rename(self, new_name: str) -> Result[bool]:
590
611
Args:
591
612
new_name (str): New collection name.
592
613
593
- Returns:
594
- bool: `True` if the collection was renamed successfully.
595
-
596
614
Raises:
597
615
CollectionRenameError: If rename fails.
598
616
@@ -606,14 +624,13 @@ async def rename(self, new_name: str) -> Result[bool]:
606
624
data = self .serializer .dumps (data ),
607
625
)
608
626
609
- def response_handler (resp : Response ) -> bool :
627
+ def response_handler (resp : Response ) -> None :
610
628
if not resp .is_success :
611
629
raise CollectionRenameError (resp , request )
612
630
self ._name = new_name
613
631
self ._id_prefix = f"{ new_name } /"
614
- return True
615
632
616
- return await self ._executor .execute (request , response_handler )
633
+ await self ._executor .execute (request , response_handler )
617
634
618
635
async def truncate (
619
636
self ,
0 commit comments