class InvenioIIIF(object): """Invenio-IIIF extension.""" def __init__(self, app=None): """Extension initialization.""" if app: self.init_app(app) def init_app(self, app): """Flask application initialization.""" self.init_config(app) self.iiif_ext = IIIF(app=app) # register decorator if configured decorator_handler = app.config["IIIF_API_DECORATOR_HANDLER"] if decorator_handler: decorator_handler_func = obj_or_import_string(decorator_handler) self.iiif_ext.api_decorator_handler(decorator_handler_func) # register image opener handler image_opener = obj_or_import_string( app.config["IIIF_IMAGE_OPENER_HANDLER"]) self.iiif_ext.uuid_to_image_opener_handler(image_opener) app.extensions['invenio-iiif'] = self def init_config(self, app): """Initialize configuration.""" for k in dir(config): if k.startswith('IIIF_'): app.config.setdefault(k, getattr(config, k))
def create_app(self): """Create the app.""" from flask_iiif import IIIF from flask_restful import Api from flask_iiif.cache.simple import ImageSimpleCache app = Flask(__name__) app.config['DEBUG'] = True app.config['TESTING'] = True app.config['SERVER_NAME'] = "shield.worker.node.1" app.config['SITE_URL'] = "http://shield.worker.node.1" app.config['IIIF_CACHE_HANDLER'] = ImageSimpleCache() app.config['PRESERVE_CONTEXT_ON_EXCEPTION'] = False app.logger.disabled = True api = Api(app=app) iiif = IIIF(app=app) iiif.uuid_to_image_opener_handler(self.create_image) def api_decorator_test(*args, **kwargs): if 'decorator' in kwargs.get('uuid'): abort(403) iiif.api_decorator_handler(api_decorator_test) iiif.init_restful(api) return app
def create_app(self): """Create the app.""" from flask_iiif import IIIF from flask_restful import Api from flask_iiif.cache.simple import ImageSimpleCache app = Flask(__name__) app.config["DEBUG"] = True app.config["TESTING"] = True app.config["SERVER_NAME"] = "shield.worker.node.1" app.config["SITE_URL"] = "http://shield.worker.node.1" app.config["IIIF_CACHE_HANDLER"] = ImageSimpleCache() app.logger.disabled = True api = Api(app=app) iiif = IIIF(app=app) iiif.uuid_to_image_opener_handler(self.create_image) def api_decorator_test(*args, **kwargs): if "decorator" in kwargs.get("uuid"): abort(403) iiif.api_decorator_handler(api_decorator_test) iiif.init_restful(api) return app
def init_app(self, app): """Flask application initialization.""" super(InvenioIIIFAPI, self).init_app(app) ext = IIIF(app=app) api = Api(app=app) ext.init_restful(api, prefix=app.config['IIIF_API_PREFIX']) ext.uuid_to_image_opener_handler(image_opener) ext.api_decorator_handler(protect_api)
class InvenioIIIF(object): """Invenio-IIIF extension.""" def __init__(self, app=None): """Extension initialization.""" if app: self.init_app(app) def init_app(self, app): """Flask application initialization.""" self.init_config(app) self.iiif_ext = IIIF(app=app) self.iiif_ext.api_decorator_handler(protect_api) self.iiif_ext.uuid_to_image_opener_handler(image_opener) app.extensions['invenio-iiif'] = self def init_config(self, app): """Initialize configuration.""" for k in dir(config): if k.startswith('IIIF_'): app.config.setdefault(k, getattr(config, k))