It used to be the case that everything in _all_ had to be quoted.
We now use flags.parse_line for _all_ so you can use code completion etc
The cell above gets written to lib as:
__all__ = ['_not_included_by_default']
%nbdev_add2all can work with anything that could come after _all_=.
You can use square brackets ...
def _not_included_by_default2(): pass
%nbdev_add2all ["_not_included_by_default2"]
... but you don't have to
It's still true that only the first _all_ or %nbdev_add2all gets picked up by export
You'll see warnings if the list of names is missing ...
... or if names fail to eval
... but none of these warnings would cause notebook2script or nbdev_build_lib to fail.
You can use space and/or comma separation
and have any amount of other code in a "add2all" cell
As before, only zero indented flags get picked up.
In the following example, show_doc would not be added to __all__ and the module would be broken - because we export everything after %nbdev_export (including %nbdev_add2all show_doc)
%nbdev_export
if True:
%nbdev_add2all show_doc
_all_=[show_doc]