Source code for flask_fedora_commons
__version_info__ = ('0', '0', '1')
__version__ = '.'.join(__version_info__)
__author__ = "Jeremy Nelson"
__license__ = 'Apache License, Version 2.0'
__copyright__ = '(c) 2013 by Jeremy Nelson'
from lib.server import Repository
from flask import current_app
try:
from flask import _app_ctx_stack as stack
except ImportError:
from flask import _request_ctx_stack as stack
[docs]class FedoraCommons(object):
def __init__(self, app=None):
self.app = app
if app is not None:
self.init_app(app)
[docs] def init_app(self, app):
if hasattr(app, 'teardown_appcontext'):
app.teardown_appcontext(self.teardown)
else:
app.teardown_request(self.teardown)
[docs] def connect(self):
return Repository()
[docs] def teardown(self, exception):
ctx = stack.top
if hasattr(ctx, 'repository'):
ctx.repository.close()
@property
[docs] def respository(self):
ctx = stack.top
if ctx is not None:
if not hasattr(ctx, 'repository'):
ctx.repository = self.connect()
return ctx.repository