from collections import namedtuple class CacheKey(namedtuple('CacheKey', ['key', 'expiration'])): """ Defines a key into the data model cache. """ pass def for_repository_blob(namespace_name, repo_name, digest): """ Returns a cache key for a blob in a repository. """ return CacheKey('repository_blob__%s_%s_%s' % (namespace_name, repo_name, digest), '60s') def for_catalog_page(auth_context_key, start_id, limit): """ Returns a cache key for a single page of a catalog lookup for an authed context. """ params = (auth_context_key or '(anon)', start_id or 0, limit or 0) return CacheKey('catalog_page__%s_%s_%s' % params, '60s')