nbdev 3.0.14__tar.gz → 3.0.15__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. {nbdev-3.0.14/nbdev.egg-info → nbdev-3.0.15}/PKG-INFO +1 -1
  2. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev/__init__.py +1 -1
  3. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev/clean.py +11 -7
  4. {nbdev-3.0.14 → nbdev-3.0.15/nbdev.egg-info}/PKG-INFO +1 -1
  5. {nbdev-3.0.14 → nbdev-3.0.15}/CONTRIBUTING.md +0 -0
  6. {nbdev-3.0.14 → nbdev-3.0.15}/LICENSE +0 -0
  7. {nbdev-3.0.14 → nbdev-3.0.15}/MANIFEST.in +0 -0
  8. {nbdev-3.0.14 → nbdev-3.0.15}/README.md +0 -0
  9. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev/_modidx.py +0 -0
  10. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev/cli.py +0 -0
  11. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev/config.py +0 -0
  12. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev/diff.py +0 -0
  13. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev/doclinks.py +0 -0
  14. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev/export.py +0 -0
  15. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev/extract_attachments.py +0 -0
  16. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev/frontmatter.py +0 -0
  17. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev/imports.py +0 -0
  18. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev/maker.py +0 -0
  19. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev/merge.py +0 -0
  20. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev/migrate.py +0 -0
  21. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev/process.py +0 -0
  22. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev/processors.py +0 -0
  23. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev/qmd.py +0 -0
  24. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev/quarto.py +0 -0
  25. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev/release.py +0 -0
  26. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev/scrubmagics.py +0 -0
  27. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev/serve.py +0 -0
  28. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev/serve_drv.py +0 -0
  29. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev/showdoc.py +0 -0
  30. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev/sync.py +0 -0
  31. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev/test.py +0 -0
  32. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev.egg-info/SOURCES.txt +0 -0
  33. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev.egg-info/dependency_links.txt +0 -0
  34. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev.egg-info/entry_points.txt +0 -0
  35. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev.egg-info/requires.txt +0 -0
  36. {nbdev-3.0.14 → nbdev-3.0.15}/nbdev.egg-info/top_level.txt +0 -0
  37. {nbdev-3.0.14 → nbdev-3.0.15}/pyproject.toml +0 -0
  38. {nbdev-3.0.14 → nbdev-3.0.15}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nbdev
3
- Version: 3.0.14
3
+ Version: 3.0.15
4
4
  Summary: Create delightful software with Jupyter Notebooks
5
5
  Author-email: "Jeremy Howard and the fast.ai community" <j@fast.ai>
6
6
  License: Apache-2.0
@@ -1,4 +1,4 @@
1
- __version__ = "3.0.14"
1
+ __version__ = "3.0.15"
2
2
 
3
3
  from .doclinks import nbdev_export
4
4
  from .showdoc import show_doc
@@ -58,7 +58,7 @@ def _clean_cell_output_id(lines):
58
58
  return _skip_or_sub(lines) if isinstance(lines,str) else [_skip_or_sub(o) for o in lines]
59
59
 
60
60
  # %% ../nbs/api/11_clean.ipynb #b4cde615
61
- def _clean_cell_output(cell, clean_ids):
61
+ def _clean_cell_output(cell, clean_ids, allowed_out_meta_keys):
62
62
  "Remove `cell` output execution count and optionally ids from text reprs"
63
63
  outputs = cell.get('outputs', [])
64
64
  for o in outputs:
@@ -69,15 +69,15 @@ def _clean_cell_output(cell, clean_ids):
69
69
  if k.startswith('text') and clean_ids: data[k] = _clean_cell_output_id(data[k])
70
70
  if k.startswith('image') and "svg" not in k: data[k] = data[k].rstrip()
71
71
  if 'text' in o and clean_ids: o['text'] = _clean_cell_output_id(o['text'])
72
- # o.get('metadata', {}).pop('tags', None)
72
+ if 'metadata' in o: o['metadata'] = {k:v for k,v in o['metadata'].items() if k in allowed_out_meta_keys}
73
73
 
74
74
  # %% ../nbs/api/11_clean.ipynb #2ba79c93
75
- def _clean_cell(cell, clear_all, allowed_metadata_keys, clean_ids):
75
+ def _clean_cell(cell, clear_all, allowed_metadata_keys, clean_ids, allowed_out_meta_keys):
76
76
  "Clean `cell` by removing superfluous metadata or everything except the input if `clear_all`"
77
77
  if 'execution_count' in cell: cell['execution_count'] = None
78
78
  if 'outputs' in cell:
79
79
  if clear_all: cell['outputs'] = []
80
- else: _clean_cell_output(cell, clean_ids)
80
+ else: _clean_cell_output(cell, clean_ids, allowed_out_meta_keys)
81
81
  if cell['source'] == ['']: cell['source'] = []
82
82
  cell['metadata'] = {} if clear_all else {
83
83
  k:v for k,v in cell['metadata'].items() if k in allowed_metadata_keys}
@@ -90,13 +90,16 @@ def clean_nb(
90
90
  allowed_metadata_keys:list=None, # Preserve the list of keys in the main notebook metadata
91
91
  allowed_cell_metadata_keys:list=None, # Preserve the list of keys in cell level metadata
92
92
  clean_ids=True, # Remove ids from plaintext reprs?
93
+ allowed_out_metadata_keys:list=None, # Preserve the list of keys in output metadata
93
94
  ):
94
95
  "Clean `nb` from superfluous metadata"
95
96
  metadata_keys = {"kernelspec", "jekyll", "jupytext", "doc", "widgets"}
96
97
  if allowed_metadata_keys: metadata_keys.update(allowed_metadata_keys)
97
98
  cell_metadata_keys = {"hide_input"}
98
99
  if allowed_cell_metadata_keys: cell_metadata_keys.update(allowed_cell_metadata_keys)
99
- for c in nb['cells']: _clean_cell(c, clear_all, cell_metadata_keys, clean_ids)
100
+ out_meta_keys = set()
101
+ if allowed_out_metadata_keys: out_meta_keys.update(allowed_out_metadata_keys)
102
+ for c in nb['cells']: _clean_cell(c, clear_all, cell_metadata_keys, clean_ids, out_meta_keys)
100
103
  if nb.get('metadata', {}).get('kernelspec', {}).get('name', None):
101
104
  nb['metadata']['kernelspec']['display_name'] = nb["metadata"]["kernelspec"]["name"]
102
105
  nb['metadata'] = {k:v for k,v in nb['metadata'].items() if k in metadata_keys}
@@ -127,7 +130,8 @@ def _nbdev_clean(nb, path=None, clear_all=None):
127
130
  clear_all = clear_all or cfg.clear_all
128
131
  allowed_metadata_keys = cfg.get("allowed_metadata_keys") or []
129
132
  allowed_cell_metadata_keys = cfg.get("allowed_cell_metadata_keys") or []
130
- clean_nb(nb, clear_all, allowed_metadata_keys, allowed_cell_metadata_keys, cfg.clean_ids)
133
+ allowed_out_metadata_keys = cfg.get("allowed_out_metadata_keys") or []
134
+ clean_nb(nb, clear_all, allowed_metadata_keys, allowed_cell_metadata_keys, cfg.clean_ids, allowed_out_metadata_keys)
131
135
  if path: nbdev_trust.__wrapped__(path)
132
136
 
133
137
  # %% ../nbs/api/11_clean.ipynb #6af3b9d4
@@ -209,7 +213,7 @@ def nbdev_install_hooks():
209
213
  os.chmod(fn, os.stat(fn).st_mode | stat.S_IEXEC)
210
214
 
211
215
  cmd = 'git config --local include.path ../.gitconfig'
212
- (repo_path/'.gitconfig').write_text(f'''# Generated by nbdev_install_hooks
216
+ (repo_path/'.gitconfig').write_text(f'''# Generated by nbdev-install-hooks
213
217
  #
214
218
  # If you need to disable this instrumentation do:
215
219
  # git config --local --unset include.path
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nbdev
3
- Version: 3.0.14
3
+ Version: 3.0.15
4
4
  Summary: Create delightful software with Jupyter Notebooks
5
5
  Author-email: "Jeremy Howard and the fast.ai community" <j@fast.ai>
6
6
  License: Apache-2.0
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes