# Load in dependencies
from api_pagination import Paginator

# Generate a paginator and get info about a page
paginator = Paginator(total=100, items_per_page=10)
page_info = paginator.get_page_info(page=2)
{
    "overall": {"first_page": 1, "last_page": 10, "pages": 10, "total": 100},
    "page": {"current_page": 2, "next_page": 3, "previous_page": 1},
}
import json

print json.dumps(page_info, indent=4, sort_keys=True).replace('"', "'").replace("null", "None")

# Use a classmethod to get info in one fell swoop
page_info = Paginator.page_info(page=1, total=100, items_per_page=10)
{
    "overall": {"first_page": 1, "last_page": 10, "pages": 10, "total": 100},
    "page": {"current_page": 1, "next_page": 2, "previous_page": None},
}
import json

print json.dumps(page_info, indent=4, sort_keys=True).replace('"', "'").replace("null", "None")

# Handle out of bounds properly
page_info = Paginator.page_info(page=20, total=100, items_per_page=10)
{
    "overall": {"first_page": 1, "last_page": 10, "pages": 10, "total": 100},
    "page": {"current_page": 20, "next_page": None, "previous_page": 10},
}
import json