$def with (page, num_found, results_per_page=20) $ pages = (num_found // results_per_page) + 1 $if pages != 1: $ pages_in_set = 10 $ half = pages_in_set // 2 $if pages < pages_in_set: $ first_page_in_set = 1 $ last_page_in_set = pages $elif page < half: $ first_page_in_set = 1 $ last_page_in_set = min((pages_in_set, pages)) $elif page > (pages-half): $ first_page_in_set = max((pages-pages_in_set, 1)) $ last_page_in_set = pages $else: $ first_page_in_set = max((page-half, 1)) $ last_page_in_set = page+half