Settings

Here’s a list of the settings available in chinup and their default values. To override settings, import the module in your application and set them, for example:

import chinup.settings

chinup.settings.APP_TOKEN = 'NGAUy7KT'
chinup.settings.DEBUG = True

If you’re using Django, you can set them in your Django settings.py:

CHINUP_APP_TOKEN = 'NGAUy7KT'
CHINUP_DEBUG = DEBUG  # reflect Django DEBUG setting into chinup

APP_TOKEN

Default: None

An app token is required to make requests with chinup. This is because chinup always makes batch requests, even for a single request, and Facebook’s batch API requires an app token.

If you don’t set settings.APP_TOKEN then you must pass your app token to ChinupBar, however this will become unwieldy quickly:

ChinupBar(app_token='NGAUy7KT', token='6Fq7Uy8J').get('me')

CACHE

Default: None

A cache is required to take advantage of etags in batch requests. This setting can either be a cache object, or a string dotted path to a module attribute. For example, using Django’s default cache:

CHINUP_CACHE = 'django.core.cache.cache'

The cache object must support the two methods: get_many and set_many.

DEBUG

Default: False

Setting this to True causes chinup to track all the batches, similarly to Django’s tracking of database queries. Then you can verify that batching is occurring as you expect:

>>> from chinup.lowlevel import batches
>>> len(batches)
3
>>> [len(b) for b in batches]
[5, 10, 1]

This shows that you’ve made three batch requests so far, containing five, ten, and one request respectively. You might say to yourself: “That last one looks suspicious. Can I tune my code to include that request in the prior batch for better performance, i.e. [5, 11]?”

ETAGS

Default: True

Chinup will cache individual responses within a batch by default, if settings.CACHE is also set. You can disable this by setting ETAGS = False.

DEBUG_HEADERS

Default: False

Chinup will omit response headers from the repr output for a Chinup by default, since they tend to be lengthy and uninteresting. To include these headers, set DEBUG_HEADERS = True.

DEBUG_REQUESTS

Default: DEBUG

Chinup always logs request info, the question is what logging level it will use. By default it’s logging.DEBUG but this becomes logging.INFO if DEBUG_REQUESTS is True.

TESTING

Default: False

This has the same effect as setting DEBUG, meaning that it causes chinup.lowlevel.batches to be tracked. Normally you don’t set this yourself, rather it’s set by the provided ChinupTestMixin. Then you can use assertBatches to make sure that changes to your code don’t cause an unwelcome change in the number of batches and requests.