MCPcopy
hub / github.com/tortoise/tortoise-orm / __getitem__

Method __getitem__

tortoise/queryset.py:545–576  ·  view source on GitHub ↗

Query offset and limit for Queryset. :raises ParamsError: QuerySet indices must be slices. :raises ParamsError: Slice steps should be 1 or None. :raises ParamsError: Slice start should be non-negative number or None. :raises ParamsError: Slice stop should

(self, key: slice)

Source from the content-addressed store, hash-verified

543 return queryset
544
545 def __getitem__(self, key: slice) -> QuerySet[MODEL]:
546 """
547 Query offset and limit for Queryset.
548
549 :raises ParamsError: QuerySet indices must be slices.
550
551 :raises ParamsError: Slice steps should be 1 or None.
552
553 :raises ParamsError: Slice start should be non-negative number or None.
554
555 :raises ParamsError: Slice stop should be non-negative number greater that slice start,
556 or None.
557 """
558 if not isinstance(key, slice):
559 raise ParamsError("QuerySet indices must be slices.")
560
561 if not (key.step is None or (isinstance(key.step, int) and key.step == 1)):
562 raise ParamsError("Slice steps should be 1 or None.")
563
564 start = key.start if key.start is not None else 0
565
566 if not isinstance(start, int) or start < 0:
567 raise ParamsError("Slice start should be non-negative number or None.")
568 if key.stop is not None and (not isinstance(key.stop, int) or key.stop <= start):
569 raise ParamsError(
570 "Slice stop should be non-negative number greater that slice start, or None.",
571 )
572
573 queryset = self.offset(start)
574 if key.stop:
575 queryset = queryset.limit(key.stop - start)
576 return queryset
577
578 def distinct(self) -> QuerySet[MODEL]:
579 """

Callers

nothing calls this directly

Calls 3

offsetMethod · 0.95
ParamsErrorClass · 0.90
limitMethod · 0.45

Tested by

no test coverage detected