Elex uses a simple file-based caching system based using CacheControl.

Each request to the AP Election API is cached. Each subsequent API request sends the etag. If the API returns a 304 not modified response, the cached version of the request is used.

Exit codes

If the underlying API call is returned from the cache, Elex exits with exit code 64.

For example, the first time you run an Elex results command, the exit code will be 0.

elex results '02-01-2016'
echo $?

The next time you run the command, the exit code will be 64.

elex results '02-01-2016'
echo $?

Clearing the cache

To clear the cache, run:

elex clear-cache

If the cache is empty, the command will return with exit code 65. This is unlikely to be helpful to end users, but helps with automated testing.

Configuring the cache

To set the cache directory, set the ELEX_CACHE_DIRECTORY environment variable.

If ELEX_CACHE_DIRECTORY is not set, the default temp directory as determined by Python’s tempfile module will be used.