@@ -199,14 +199,14 @@ def __init__(self, query_dataset: str, num_queries: int | None = None) -> None:
199199 super (IRDataset , self ).__init__ ()
200200 self .num_queries = num_queries
201201
202- def __len__ (self ) -> int :
202+ def __len__ (self ) -> int | None :
203203 """Number of queries in the dataset.
204204
205205 :return: Number of queries
206206 :rtype: int
207207 """
208208 # TODO fix len for multi-gpu and multi-worker inference
209- return self .num_queries or self .ir_dataset . queries_count ()
209+ return self .num_queries or getattr ( self .ir_dataset , " queries_count" , lambda : None )() or None
210210
211211 def __iter__ (self ) -> Iterator [QuerySample ]:
212212 """Iterate over queries in the dataset.
@@ -253,7 +253,7 @@ def __init__(self, doc_dataset: str, num_docs: int | None = None, text_fields: S
253253 self .num_docs = num_docs
254254 self .text_fields = text_fields
255255
256- def __len__ (self ) -> int :
256+ def __len__ (self ) -> int | None :
257257 """Number of documents in the dataset.
258258
259259 :raises ValueError: If no `num_docs` was not provided in the constructor and the number of documents cannot
@@ -262,9 +262,7 @@ def __len__(self) -> int:
262262 :rtype: int
263263 """
264264 # TODO fix len for multi-gpu and multi-worker inference
265- num_docs = self .num_docs or self .ir_dataset .docs_count ()
266- if num_docs is None :
267- raise TypeError ("Unable to determine number of documents." )
265+ num_docs = self .num_docs or getattr (self .ir_dataset , "doc_count" , lambda : None )() or None
268266 return num_docs
269267
270268 def __iter__ (self ) -> Iterator [DocSample ]:
0 commit comments