-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcompression.diff
More file actions
103 lines (96 loc) · 4.2 KB
/
Copy pathcompression.diff
File metadata and controls
103 lines (96 loc) · 4.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
--- input/input.py
+++ output/output.py
@@ -129,52 +129,13 @@
def _check_object_list_is_ordered(self):
"""
Warn if self.object_list is unordered (typically a QuerySet).
- """
- ordered = getattr(self.object_list, "ordered", None)
- if ordered is not None and not ordered:
- obj_list_repr = (
- "{} {}".format(
- self.object_list.model, self.object_list.__class__.__name__
- )
- if hasattr(self.object_list, "model")
- else "{!r}".format(self.object_list)
+... # 15 line(s) collapsed ⟦tj:7b5c319ded7ccea4438613f1c378ed62⟧
)
- warnings.warn(
- "Pagination may yield inconsistent results with an unordered "
- "object_list: {}.".format(obj_list_repr),
- UnorderedObjectListWarning,
- stacklevel=3,
- )
def get_elided_page_range(self, number=1, *, on_each_side=3, on_ends=2):
"""
Return a 1-based range of pages with some values elided.
-
- If the page range is larger than a given size, the whole range is not
- provided and a compact form is returned instead, e.g. for a paginator
- with 50 pages, if page 43 were the current page, the output, with the
- default arguments, would be:
-
- 1, 2, …, 40, 41, 42, 43, 44, 45, 46, …, 49, 50.
- """
- number = self.validate_number(number)
-
- if self.num_pages <= (on_each_side + on_ends) * 2:
- yield from self.page_range
- return
-
- if number > (1 + on_each_side + on_ends) + 1:
- yield from range(1, on_ends + 1)
- yield self.ELLIPSIS
- yield from range(number - on_each_side, number + 1)
- else:
- yield from range(1, number + 1)
-
- if number < (self.num_pages - on_each_side - on_ends) - 1:
- yield from range(number + 1, number + on_each_side + 1)
- yield self.ELLIPSIS
- yield from range(self.num_pages - on_ends + 1, self.num_pages + 1)
- else:
+... # 26 line(s) collapsed ⟦tj:f0b8113bd34e11890b3f371f3b1f077e⟧
yield from range(number + 1, self.num_pages + 1)
@@ -191,16 +152,7 @@
return len(self.object_list)
def __getitem__(self, index):
- if not isinstance(index, (int, slice)):
- raise TypeError(
- "Page indices must be integers or slices, not %s."
- % type(index).__name__
- )
- # The object_list is converted to a list so that if it was a QuerySet
- # it won't be a database hit per __getitem__.
- if not isinstance(self.object_list, list):
- self.object_list = list(self.object_list)
- return self.object_list[index]
+ ... # 10 line(s) collapsed ⟦tj:a87951704373512af9ca5b16e9bfbb9f⟧
def has_next(self):
return self.number < self.paginator.num_pages
@@ -218,21 +170,10 @@
return self.paginator.validate_number(self.number - 1)
def start_index(self):
- """
- Return the 1-based index of the first object on this page,
- relative to total objects in the paginator.
- """
- # Special case, return zero if no items.
- if self.paginator.count == 0:
- return 0
- return (self.paginator.per_page * (self.number - 1)) + 1
+ ... # 8 line(s) collapsed ⟦tj:bb9163ec5f60044faae79fc805f6d8eb⟧
def end_index(self):
- """
- Return the 1-based index of the last object on this page,
- relative to total objects found (hits).
- """
- # Special case for the last page because there can be orphans.
- if self.number == self.paginator.num_pages:
- return self.paginator.count
- return self.number * self.paginator.per_page
+ ... # 8 line(s) collapsed ⟦tj:68d4719dde344c953888899f67d0a322⟧
+[omitted blocks are individually retrievable: call tinyjuice_retrieve with the token inside an omission marker to expand just that block]
+
+[PARTIAL view — full original (7905 bytes): call tinyjuice_retrieve with token "605476104d16d9c2e112e5d2588ebb73"]
\ No newline at end of file