From 93cca1b0558439ee27275884e989c63a4198444b Mon Sep 17 00:00:00 2001 From: Philippe Duval Date: Thu, 2 Aug 2018 12:13:34 -0400 Subject: [PATCH 1/2] Add `assets_ignore` init keyword, regex filter for the assets files. --- dash/dash.py | 14 +++++++++++--- tests/assets/load_ignored.js | 1 + tests/test_integration.py | 3 ++- 3 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 tests/assets/load_ignored.js diff --git a/dash/dash.py b/dash/dash.py index d128fda294..fb14dbee03 100644 --- a/dash/dash.py +++ b/dash/dash.py @@ -73,9 +73,10 @@ def __init__( static_folder='static', assets_folder=None, assets_url_path='/assets', + assets_ignore='', + include_assets_files=True, + url_base_pathname='/', assets_external_path=None, - include_assets_files=None, - url_base_pathname=None, requests_pathname_prefix=None, routes_pathname_prefix=None, compress=True, @@ -158,6 +159,8 @@ def _handle_error(error): self._external_scripts = external_scripts or [] self._external_stylesheets = external_stylesheets or [] + self.assets_ignore = assets_ignore + self.registered_paths = {} # urls @@ -895,6 +898,8 @@ def _setup_server(self): def _walk_assets_directory(self): walk_dir = self._assets_folder slash_splitter = re.compile(r'[\\/]+') + ignore_filter = re.compile(self.assets_ignore) \ + if self.assets_ignore else None def add_resource(p, filepath): res = {'asset_path': p, 'filepath': filepath} @@ -914,7 +919,10 @@ def add_resource(p, filepath): else: base = splitted[0] - for f in sorted(files): + files_gen = (x for x in files if not ignore_filter.search(x)) \ + if ignore_filter else files + + for f in sorted(files_gen): if base: path = '/'.join([base, f]) else: diff --git a/tests/assets/load_ignored.js b/tests/assets/load_ignored.js new file mode 100644 index 0000000000..668e477680 --- /dev/null +++ b/tests/assets/load_ignored.js @@ -0,0 +1 @@ +window.tested = 'IGNORED'; // Break the chain. \ No newline at end of file diff --git a/tests/test_integration.py b/tests/test_integration.py index aab043a372..011b343504 100644 --- a/tests/test_integration.py +++ b/tests/test_integration.py @@ -363,7 +363,8 @@ def test_index_customization(self): self.percy_snapshot('custom-index') def test_assets(self): - app = dash.Dash(assets_folder='tests/assets') + app = dash.Dash(assets_folder='tests/assets', + assets_ignore='.*ignored.*') app.index_string = ''' From 20b04052b248c3bad5bb54bca7ee2a7f6b8635b0 Mon Sep 17 00:00:00 2001 From: Philippe Duval Date: Mon, 20 Aug 2018 15:43:26 -0400 Subject: [PATCH 2/2] Version bump. --- CHANGELOG.md | 4 ++++ dash/version.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 52bf8fa07c..026256670d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.26.0 - 2018-08-20 +## Added +- Added `assets_ignore` init keyword, regex filter for the assets files. [#318](https://github.com/plotly/dash/pull/318) + ## 0.25.1 - 2018-08-20 ## Fixed - Ensure CSS/JS external resources are loaded before the assets. [#335](https://github.com/plotly/dash/pull/335) diff --git a/dash/version.py b/dash/version.py index e11448a907..826d20e8b6 100644 --- a/dash/version.py +++ b/dash/version.py @@ -1 +1 @@ -__version__ = '0.25.1' +__version__ = '0.26.0'