Skip to content

Commit

Permalink
Merge pull request #784 from mgeier/keep-empty-cells
Browse files Browse the repository at this point in the history
Don't remove empty cells by default
  • Loading branch information
blink1073 committed Aug 29, 2018
2 parents d3c91bb + 308fb29 commit 4d9fe03
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 10 deletions.
14 changes: 6 additions & 8 deletions nbconvert/preprocessors/regexremove.py
Expand Up @@ -20,16 +20,14 @@ class RegexRemovePreprocessor(Preprocessor):
of unicode strings. If the contents match any of the patterns, the cell
is removed from the notebook.
By default, `patterns = [r'\Z']` which matches the empty string such that
strictly empty cells are removed. To modify the list of matched patterns,
To modify the list of matched patterns,
modify the patterns traitlet. For example, execute the following command
to convert a notebook to html and remove cells containing only whitespace:
to convert a notebook to html and remove cells containing only whitespace::
> jupyter nbconvert --RegexRemovePreprocessor.enabled=True \
--RegexRemovePreprocessor.patterns="['\\s*\\Z']" mynotebook.ipynb
jupyter nbconvert --RegexRemovePreprocessor.patterns="['\\s*\\Z']" mynotebook.ipynb
The first command line argument enables the preprocessor and the second
sets the list of patterns to '\\s*\\Z' which matches an arbitrary number
The command line argument
sets the list of patterns to ``'\\s*\\Z'`` which matches an arbitrary number
of whitespace characters followed by the end of the string.
See https://regex101.com/ for an interactive guide to regular expressions
Expand All @@ -38,7 +36,7 @@ class RegexRemovePreprocessor(Preprocessor):
documentation in python.
"""

patterns = List(Unicode(), default_value=[r'\Z']).tag(config=True)
patterns = List(Unicode(), default_value=[]).tag(config=True)

def check_conditions(self, cell):
"""
Expand Down
4 changes: 2 additions & 2 deletions nbconvert/preprocessors/tests/test_regexremove.py
Expand Up @@ -44,9 +44,9 @@ def test_output(self):
'disallow_tab_newline': [r'\t\Z', r'\n\Z']
}
expected_cell_count = {
'default': 5, # only strictly empty cells
'default': 6, # nothing is removed
'disallow_whitespace': 2, # all "empty" cells are removed
'disallow_tab_newline': 3, # all "empty" cells but the single space
'disallow_tab_newline': 4, # cells with tab and newline are removed
'none': 6,
}
for method in ['default', 'disallow_whitespace', 'disallow_tab_newline', 'none']:
Expand Down

0 comments on commit 4d9fe03

Please sign in to comment.