def make_app(stores_path='/tmp', cache_enabled=True, cache_type='memory', cache_size=10000, cache_host='localhost', cache_port=6379, cache_ttl=86400, gc_interval=86400): global app global cache # monkey patch bottle to increase BaseRequest.MEMFILE_MAX BaseRequest.MEMFILE_MAX = 1024000 setup_logging() app.config['gitstores_path'] = stores_path app.config['gc_interval'] = gc_interval cache_backend = None if cache_type == 'memory': cache_backend = LocalCache(cache_size) elif cache_type == 'redis': try: import redis cache_backend = RedisCache(redis.Redis(cache_host, cache_port), cache_ttl) except ImportError: pass cache = QueryCache(backend=cache_backend, enabled=cache_enabled) if gc_interval > 0: t = threading.Thread(target=run_gc) t.setDaemon(True) t.start() return app
def __init__(self, endpoint, name, **kwargs): self.session = requests.Session() self.endpoint = endpoint if self.endpoint.endswith('/'): self.endpoint = self.endpoint.rstrip('/') self.name = name cache_enabled = kwargs.get('cache_enabled', True) cache_backend = kwargs.get('cache_backend') self.cache = QueryCache(backend=cache_backend, enabled=cache_enabled)