Skip to content

Commit

Permalink
Merge pull request #2354 from jezdez/redash-extensions
Browse files Browse the repository at this point in the history
Add a Redash extension system based on Python entrypoints.
  • Loading branch information
arikfr authored Mar 4, 2018
2 parents 6a072dd + 6b41644 commit 5aa4b28
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 2 deletions.
4 changes: 2 additions & 2 deletions redash/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ def to_url(self, value):


def create_app(load_admin=True):
from redash import handlers
from redash import extensions, handlers
from redash.handlers.webpack import configure_webpack
from redash.admin import init_admin
from redash.models import db
Expand Down Expand Up @@ -137,5 +137,5 @@ def create_app(load_admin=True):
limiter.init_app(app)
handlers.init_app(app)
configure_webpack(app)

extensions.init_extensions(app)
return app
14 changes: 14 additions & 0 deletions redash/extensions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
from pkg_resources import iter_entry_points


def init_extensions(app):
"""
Load the Redash extensions for the given Redash Flask app.
"""
if not hasattr(app, 'redash_extensions'):
app.redash_extensions = {}

for entry_point in iter_entry_points('redash.extensions'):
app.logger.info('Loading Redash extension %s.', entry_point.name)
extension = entry_point.load()
app.redash_extensions[entry_point.name] = extension(app)

0 comments on commit 5aa4b28

Please sign in to comment.