From 8e60b83669e94218aa97dfaafd88b7baec5619a4 Mon Sep 17 00:00:00 2001 From: Alexander Luberg Date: Sun, 31 Jan 2016 13:04:36 -0800 Subject: [PATCH 1/2] Added support for Flask < 0.10. Minor fixes for PEP8 and docstrings. Refactored/improved performance of asset_url_for. --- .gitignore | 1 + flask_webpack/__init__.py | 32 ++++++++++++++++++++------------ 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index 61dbedd..e66c7bb 100644 --- a/.gitignore +++ b/.gitignore @@ -40,6 +40,7 @@ docs/_build/ .*.sw* *~ .idea/ +*.iml .mr.developer.cfg .project .pydevproject diff --git a/flask_webpack/__init__.py b/flask_webpack/__init__.py index 0ca2014..818125a 100644 --- a/flask_webpack/__init__.py +++ b/flask_webpack/__init__.py @@ -31,9 +31,18 @@ def init_app(self, app): if app.config.get('DEBUG', False): app.before_request(self._refresh_webpack_stats) - app.add_template_global(self.javascript_tag) - app.add_template_global(self.stylesheet_tag) - app.add_template_global(self.asset_url_for) + if hasattr(app, 'add_template_global'): + app.add_template_global(self.javascript_tag) + app.add_template_global(self.stylesheet_tag) + app.add_template_global(self.asset_url_for) + else: + # Flask < 0.10 + ctx = { + 'javascript_tag': self.javascript_tag, + 'stylesheet_tag': self.stylesheet_tag, + 'asset_url_for': self.asset_url_for + } + app.context_processor(lambda: ctx) def _set_asset_paths(self, app): """ @@ -57,8 +66,8 @@ def _set_asset_paths(self, app): self.assets = stats['assets'] except IOError: raise RuntimeError( - "Flask-Webpack requires 'WEBPACK_MANIFEST_PATH' to be set and " - "it must point to a valid json file.") + "Flask-Webpack requires 'WEBPACK_MANIFEST_PATH' to be set and " + "it must point to a valid json file.") def _refresh_webpack_stats(self): """ @@ -73,7 +82,7 @@ def javascript_tag(self, *args): """ Convenience tag to output 1 or more javascript tags. - :param *args: 1 or more javascript file names + :param args: 1 or more javascript file names :return: Script tag(s) containing the asset """ tags = [] @@ -89,7 +98,7 @@ def stylesheet_tag(self, *args): """ Convenience tag to output 1 or more stylesheet tags. - :param *args: 1 or more stylesheet file names + :param args: 1 or more stylesheet file names :return: Link tag(s) containing the asset """ tags = [] @@ -98,7 +107,7 @@ def stylesheet_tag(self, *args): asset_path = self.asset_url_for('{0}.css'.format(arg)) if asset_path: tags.append( - ''.format(asset_path)) + ''.format(asset_path)) return '\n'.join(tags) @@ -114,8 +123,7 @@ def asset_url_for(self, asset): if '//' in asset: return asset - for key in self.assets: - if key == asset: - return '{0}{1}'.format(self.assets_url, self.assets[key]) + if asset not in self.assets: + return None - return None + return '{0}{1}'.format(self.assets_url, self.assets[asset]) From 504773215628d27d46323d874ab602e94e5fff23 Mon Sep 17 00:00:00 2001 From: Alexander Luberg Date: Sun, 31 Jan 2016 13:17:45 -0800 Subject: [PATCH 2/2] Fixed Flake8 errors --- flask_webpack/__init__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flask_webpack/__init__.py b/flask_webpack/__init__.py index 818125a..c6964b0 100644 --- a/flask_webpack/__init__.py +++ b/flask_webpack/__init__.py @@ -66,8 +66,8 @@ def _set_asset_paths(self, app): self.assets = stats['assets'] except IOError: raise RuntimeError( - "Flask-Webpack requires 'WEBPACK_MANIFEST_PATH' to be set and " - "it must point to a valid json file.") + "Flask-Webpack requires 'WEBPACK_MANIFEST_PATH' to be set and " + "it must point to a valid json file.") def _refresh_webpack_stats(self): """ @@ -107,7 +107,7 @@ def stylesheet_tag(self, *args): asset_path = self.asset_url_for('{0}.css'.format(arg)) if asset_path: tags.append( - ''.format(asset_path)) + ''.format(asset_path)) return '\n'.join(tags)