- Improve backtick regex matching for function names (#1469), thanks to @ncoop57
- make
nb_export
a cli [Enhancement] (#1450), thanks to @hamelsmu - Make
nbdev_export
work outside nbdev repos (#799)
- Use
r
strings to avoid new Python SyntaxWarnings in regex (#1452) - Nested
lib_path
values break module -> notebook sync (#1393)
- Add
ai_magics
preprocessor (#1442)
- Generate module docstrings from markdown meta summary (#1440)
- By default create markdown versions of docs too (#1439)
- add markdown to doc output (#1438)
- No new features or fixes---just an update to the pypi status since we forgot about it!
- add enable/disable cell number in .py files (#1428), thanks to @dienhoa
- When exporting a notebook to a .py file, we currently have something like
# %% {nb_path} {cell_number}
at the beginning of each exported cell. - This PR adds one new setting in the setting.ini:
cell_number
. When set to False, we disable thecell_number
discussed above. - Side effect: The
cell_number
is used to update the changes from .py back to the notebook, so disabling it also disables this feature.
- When exporting a notebook to a .py file, we currently have something like
- showdoc: SyntaxWarning: invalid escape sequence with Python 3.12 (#1396)
- Change
jupyter_hooks
default toFalse
- Remove max version constraint on ipywidgets dev dependency
- Remove unneeded ipywidgets requirement
- fixes UnboundLocalError: cannot access local variable
_TEMPLATE
where it is not associated with a value (#1413), thanks to @stepetal
- Remove boxes since they broke ToC (#1411)
- Add magic
__
symbols toshow_doc
output (#1410) - wrap
exports
cells in a shadowed box (like a card) (#1409), thanks to @hamelsmu
- Move
exports
source after theshow_doc
(#1408)
- Add code folding for
exports
(#1407)
- Reverted #1390
- Add --no_browser option to nbdev_preview (#1400), thanks to @bamford
- added conda_user and package_data to cfg_tail (#1351), thanks to @dsm-72
- add repo and tag options to
nbdev_new
(#1350), thanks to @dsm-72
- Changed
serve.proc_nbs
so that it makes use of its argumentsfile_glob
andfile_re
(#1390), thanks to @lukastk
- add support for 3.11 (#1373), thanks to @deven367
- update install_quarto to distinguish arm64 and amd64 (#1356), thanks to @JonasHarnau
- allow trailing
:
in directives for YAML compliance (#1312), thanks to @hamelsmu - CI error on uncleaned notebooks suggests upgrading nbdev (#1308)
- Auto-add index file onto
section
(#1307), thanks to @p4perf4ce - nbdev_clean: Add trailing newlines to mask diff between Jupyter and VSCode (#1292), thanks to @xl0
- exported modules can scrub_magics (#1250), thanks to @yegeniy
- Add extensions tutorial (#1228), thanks to @muellerzr
- pin ipywidgets version (#1318), thanks to @hamelsmu
- Fix encoding issue for Windows OS User especially for non-English user (#1314), thanks to @JunDamin
- add agplv3 license to project options (#1268), thanks to @joel-lbth
- add 0 - Pre-planning status to project options (#1262), thanks to @ddobrinskiy
- add conda installation docs to end-to-end tutorial (#1215), thanks to @restlessronin
- Fix
nbdev_conda
error when there are prior release tarballs (#1280), thanks to @restlessronin - delete build dir before pypi upload (#1277), thanks to @restlessronin
- copy contents of
_extensions
folder from nbs (#1266), thanks to @restlessronin - Fix
nbdev_update
whenlib_name
andlib_path
are not the same (#1254), thanks to @BirkhoffG - Make
nbdev_create_config
write theblack_formatting
setting (#1235), thanks to @dmose - fix order of categories for migration (#1221), thanks to @hamelsmu
- make anaconda description links consistent with pypi (#1214), thanks to @restlessronin
- .get instead of acessing attr (#1023), thanks to @hamelsmu
- utility that creates a
requirements.txt
file fromsettings.ini
(#1202), thanks to @hamelsmu - user-friendly error if py file has
# %%
comments with unexpected format (#1211), thanks to @seeM - add parameter for name to
nb_export
(#1204), thanks to @hamelsmu - ensure newline at end of
_modidx.py
(#1186)
- end
sidebar.yml
with newline (#1212), thanks to @seeM - fix: incorrect regex pattern for setting
output-file
(#1210), thanks to @seeM - ensure newline at end of
_modidx.py
(#1209), thanks to @seeM - fix:
nbdev_install_quarto
may install and remove unrelated packages (#1208), thanks to @seeM - fix: key error if widgets is missing
state
(#1207), thanks to @seeM -nbdev_install_quarto
may install and remove unrelated packages (#1182) - Key error if widgets is missing
state
(#1167)
- better error messages for
nbdev_migrate
(#1177) - experimental: Users can provide extra processors via the
procs
key insettings.ini
(#1157), thanks to @seeM - enable Documentation Only Sites With
nbdev
( + tutorial ) (#1121), thanks to @hamelsmu - support non-library projects (#1119)
- throw a warning when imports and code are mixed in a cell (#714)
- fix duplicated sections in the sidebar (#1165), thanks to @seeM
- setting
#| echo
in a cell withshow_doc
causes a Quarto error (#1163) - fix copying of index assets (#1143), thanks to @hamelsmu
- images in index.ipynb causing deployments issues (#1140)
- clean takes forever on notebooks with large output (#1132)
nbdev_update
includes folders starting with_
or.
(e.g..ipynb_checkpoints
) (#1130), thanks to @seeMnbdev_new
defaults bool parameters toFalse
(e.g.put_version_in_init
) (#1129), thanks to @seeMblack_formatting
setting is ignored (#1122), thanks to @jmoraleznbdev_readme()
fails on the second run for the notebook with support files (e.g. Fig image). (#1106)nbdev_new
fails withAttributeError: path_
(#1063)- fix #1041 (#1049), thanks to @seeM
- Set recursive
True
by default (#1117), thanks to @seeM exec_doc
supports re-rendering widgets (#1113), thanks to @seeM- If users update widgets with the
exec_doc
directive, the widget "view" is updated (in the cell output), but the old widget "state" is used (in notebook metadata). This refreshes widget state usingipywidgets.Widget.get_manager_state
.
- If users update widgets with the
nbdev_new
pins on major+minor version ofnbdev-template
(#1091)nbdev_proc_nbs
completes all steps to build_proc
for publishing (#1086)nbdev_new
defaultsnbs_path
setting to'nbs'
(#1083)- Since all website files (quarto config, css, images, etc) are in
nbs_path
, the current defaultnbs_path='.'
can clutter the root folder.
- Since all website files (quarto config, css, images, etc) are in
nbdev_new
queriesbranch
from GitHub (#1080)
- fix exporting
patch_to
which is decorated withstaticmethod
(#1100), thanks to @seeM show_doc
errors if a dependency in thenbdev
group has a sub-dependency that isn't installed (#1097)- Running
nbdev_migrate
while upgrading removes nbdev2 compatible directives (#1089) - respect
#|hide
and#|include: false
for showdoc (#1079), thanks to @hamelsmu - Export class to library but hide from documentation (#1076)
nbdev_clean
removes widget state (#1069)- If widget state is present, it means the user had intentionally changed settings in their notebook editor.
- Support GitHub Enterprise (#944)
nbdev_new
fails withAttributeError: path_
(#1063)
_quarto.yml
no longer replaced with automatically generated version (#1059)- This was listed in 2.3.0 but wasn't actually included in the release
- fix
nbdev_update
(#1058), thanks to @seeM- fix bug in
nbdev.maker.update_import
which meant thatnbdev_update
didn't convert relative imports withoutNone
module (e.gfrom . import foo
->from pkg import foo
) - fix
FileNotFoundError
innbdev_update
by passing the correct py module and corresponding notebook paths - fix
nbdev_update
introducing whitespace changes to notebooks
- fix bug in
_quarto.yml
no longer replaced with automatically generated version- You can now customise your
_quarto.yml
file and it will not be overridden by nbdev - This means that
custom_host
andcustom_port
insettings.ini
are no longer supported -- use the standard quarto configuration instead
- You can now customise your
- Parallel ipynb filter (#961)
ipynb-filters
in_quarto.yml
is no longer needed or recommended. Instead, nbdev preprocesses your notebooks in parallel into a folder called_proc
before calling quarto- The new processing system generally results in speedups of around 10x compared to the previous approach
- Deprecate
config_key
in favor ofget_config
(#856), thanks to @seeM
- Setting
put_version_in_init
to make adding__version__
to__init__.py
optional (#1051), thanks to @MichaelJFishmanBA nbdev_new
support for GitHub Enterprise (#1043), thanks to @seeM- Use
GITHUB_TOKEN
if present fornbdev.release
(#1025) - Support non qmd py rendering scripts (#1014)
- Use penultimate suffix for extension of rendered .py scripts (#1010)
- Print
nbdev_test
cell errors to stderr instead of usinglogging.warning
(#1003) - Make nb meta
display_name
consistent withname
to simplify diffs (#995) - Windows support for clean nb (#989), thanks to @jvanelteren
- Preview support for parallel filter (#976)
- Settings.ini option for choosing preview listen port (#967)
- Vscode extension for nbdev which cleans notebooks (#952)
- Authenticate nbdev-template github API call (#940)
- Add
printit
arg tonbdev_filter
so it can be called withfname
and still print to stdout (#931), thanks to @seeM - Run
nbdev_readme
innbdev_new
(#919), thanks to @seeM - Improve config documentation in
read
module (#864), thanks to @seeM - Simplify
jupyter_hooks
configuration (#780), thanks to @seeM
- Class method doclinks target
mod.html#method
instead ofmod.html#class.method
(#1046), thanks to @seeM - "Bad credentials" error in
nbdev_new
if GitHub EnterpriseGH_HOST
andGITHUB_TOKEN
are used (#1038) - Suppress
UserWarning
for unsetGITHUB_TOKEN
innbdev_new
(#1028), thanks to @seeM nbdev.release
usescfg.lib_name
instead ofcfg.repo
(#1024), thanks to @seeMnbdev_test
does not restore the original working directory (#1004)clean_ids
corrupts string outputs (#794), thanks to @seeM
- missing
doc_path.name
in_docs
move (#973)
- Experimental: pre-commit hooks (#959), thanks to @seeM
- setup GitHub repo automatically (#955), thanks to @hamelsmu
- Authenticate nbdev-template github API call (#940)
- Support module level docstrings (#473)
show_doc
includes parsed sections from numpy docstrings (#964)AnnAssign
object has no attribute 'targets' (#953)- Exported images not found in docs (#951)
- fix #769 (#946), thanks to @hamelsmu
recursive
in settings.ini ignored (#942)- Wrong source link when using @patch (#939)
- Deploy Action fails with
ModuleNotFoundError: No module named 'https://github'
(#936) - Recursive mode doesn't seem to work when running
nbdev_preview
(#935) - Update All Python Scripts to nbs similar to
nbdev_update_lib
in v1 (#769)
- Add
printit
arg tonbdev_filter
so it can be called withfname
and still print to stdout (#931), thanks to @seeM - Run
nbdev_readme
innbdev_new
(#919), thanks to @seeM - In
nbdev_prepare()
auto render README if needed (#913) - Filter keys stored in modidx settings (#903)
- Regression: reintroduce
[source]
link (#692)
- Deploy Action fails with
ModuleNotFoundError: No module named 'https://github'
(#936) - Correct cell index in
nbdev_update
(#934), thanks to @hamelsmu - Handle repo names with dashes and correct index page rendering with file attachments (#930), thanks to @hamelsmu
IPython.display.Image(embed=True)
results in incorrect image reference in GitHub Pages (#924)nbdev_preview
not starting if there is a folder with no notebook in it (#922)- Fix images (#918), thanks to @seeM
nbdev_update
creates a new cell, instead of updating the original code (#775)
- Build
_modidx.py
on demand in order to git conflicts (#911) - Add source link to index (#909)
- Order left navigation sections using numeric prefix (#901)
- Automatic rendering of python files with frontmatter (#895)
- Make sure
#|exec_doc
triggers an update even when there is no export or show_doc (#906), thanks to @hamelsmu - allow nbdev directives to work with cell magic (#905), thanks to @hamelsmu
- Combine preprocs and postprocs into new
Processor
class (#874) - Rename
nbdev.read
tonbdev.config
(#879) - Use H3 for functions and properties, instead of H4 (#875)
- Remove
nbflags
directive (#871) - Deprecate
config_key
in favor ofget_config
(#856), thanks to @seeM
- Add simple qmd generation functions in
nbdev.qmd
(#893) - Add
FrontmatterProc
(#890) - Improvements to
nbdev_new
andnbdev_create_config
(#878), thanks to @seeMnbdev_create_config
infers settings from git/GitHub, prompts for missing settings, and renders the settings file with commented sectionsnbdev_new
usesnbdev_create_config
instead of a file provided bynbdev-template
, which means it'll benefit from future improvements tonbdev_create_config
as well as always using latest defaults
- Add frontmatter bullet point processor (#873)
- Allow specifying port for preview (#872), thanks to @dleen
nbdev_new
renders notebooks with information from your config file (#866), thanks to @seeM- Improve config documentation in
read
module (#864), thanks to @seeM - Install quarto without root access (#860)
- Explain more detail during quarto installation process (#859)
- Automatically maintain
__version__
in__init__.py
(#854) - Prettify output for
nbdev_test
(#849), thanks to @deven367 - Ignore .ipynb_checkpoints folder in module dir (#848), thanks to @dleen
- Escape Footnotes from Docments Table (#847), thanks to @hamelsmu
- Include filename in
nbdev_export
warning when nbdev1 syntax is used (#838), thanks to @seeM - Show title if nbdev_filter errors (#828), thanks to @hamelsmu
- Added "topics" to match GitHub's terminology (#817), thanks to @tylere
- Accelerate
quarto preview
(#748) - Throw a warning when imports and code are mixed in a cell (#714)
- Make conda release work for anyone (#653)
_all_
works for strings but not objects in py3.7 (#870)show_doc
title_level
argument has no effect (#869)show_doc
sometimes does not show wrapped functions correctly (#863)show_doc
treats functions decorated withlru_cache
as classes (#862), thanks to @seeM- Fix
show_doc
signature whitespace removal (#855), thanks to @seeM nbdev_new
doesn't infer anything if no gitconfig (#846)show_doc
paremeter default may render as footnote (#796)- Conda description is empty (#745)
- add
nbdev_conda
to create and upload conda packages (#850)
- Add
custom_quarto_yml
setting (#842), thanks to @benoit-cty - Display multiline docstrings (#841)
- Include filename in
nbdev_export
warning when nbdev1 syntax is used (#835) - Streamline
nbdev_new
: outputs are now in color, you can pass--lib_name
, and it callsnbdev_export
(#820), thanks to @seeM - A command for uploading to the test pypi server (#818), thanks to @tourdownunder
- Include notebook title in
nbdev_preview
error message (#802) - Migrate collapsible code cell directives (#783), thanks to @hamelsmu
- Simplify
jupyter_hooks
configuration (#780), thanks to @seeM - Support
nbdev_install_hooks
in non-nbdev repos (#779), thanks to @seeM - Allow users to provide user-level settings in ~/.config/nbdev/settings.ini (#778), thanks to @seeM
- Support
nbdev_install_hooks
in non-nbdev repos (#777) - Port
doc()
from nbdev1 (#772) - Make
show_doc
for function parameter defaults concise and deterministic (#771) - Clean
id
from textrepr
outputs to further avoid git merge conflicts (#749) - Add repo root to sys path on exec (#735)
- Use frontmatter
eval
andshowdoc
for controlling notebook execution (#734)
- #|exports directive does not show source code in the docs (#822)
- nbdev commands fail when
doc_path
contains whitespace (#813), thanks to @mone27 show_doc
html renderer is incorrectly formatted (#808)show_doc
cell output is incorrectly styled (#807)- links aren't rendered as code (#795), thanks to @seeM
clean_ids
corrupts string outputs (#794), thanks to @seeM- quarto frontmatter is removed (#789)
nbdev_merge
fails ongit stash pop
conflict (#787), thanks to @seeM- Hooks search Jupyter start directory instead of notebook directory for settings file (#784), thanks to @dleen
- Allow for dash in Quarto directives (#782), thanks to @hamelsmu
- Fix directive migration when there is no test flag (#781), thanks to @hamelsmu
nbdev_prepare
throws BrokenProcessPool error on MacOS (#731)- settings.ini not inferred by
nbdev_new
on newly cloned repo on MacOS (#710)
- use global defaults instead of respecifying each time (#770), thanks to @seeM
get_config
works without a settings file (#768), thanks to @seeM- add site url (#767), thanks to @hamelsmu
- add
show_src
to display rich source code (#763), thanks to @seeM - add support for
#|exports
(#762) nbdev_merge
prints info likegit merge
(#753)- helpers to convert fp front matter to quarto front matter (#750), thanks to @hamelsmu
- Streamline default settings (#747)
- Config keys (and their defaults) should all be documented in one place
- add
user
option tojupyter_hooks
setting (#738), thanks to @seeM - Add appropriate
output-file
to existing frontmatter (#728)
nbdev_prepare
sometimes throws BrokenProcessPool error on MacOS (#731)- Incorrect relative import from package root inside nested module (#773)
- Jupyter hooks break in environments without
nbdev
installed (#760) nbdev_fix
breaks with emptyours
patch (#752)- fix
nbdev_merge
during rebase; fixnbdev_fix
nobackup
default (#737), thanks to @seeM - non-notebooks do not have nbformat field (#732), thanks to @dleen
- add tools from fastrelease to nbdev (#733)
- fix
nbdev_test
with no--fname
in non-nbdev repos (#730), thanks to @seeM - Auto-generated showdoc headers not in ToC (#703)
nbdev_sidebar
now looks for.qmd
files instead of.md
files
- automatically add
output:asis
for showdoc cells (#726) - accelerate
nbdev_readme
(#715) - deterministic
show_doc
andDocmentTbl
repr
(#707), thanks to @seeM
- KeyError 'repo' when trying to create a new nbdev project with
nbdev_new
(#720) show_doc
ends the details column at any|
character (#712)- only add to
.gitattributes
if missing (#706), thanks to @seeM
- git merge hooks: automatically resolve conflicts and render markers as separate cells (#704), thanks to @seeM
- Allow clean to keep some metadata keys (#672), thanks to @dleen
- enable mac terminal install instead of visual installer (#705), thanks to @hamelsmu
- Conditional content for markdown vs HTML for README (#694), thanks to @hamelsmu
- Export a single module (#652)
- Re-enable Mac CI #425)
- new jupyter save hook to clean NBs (#697), thanks to @seeM
- new directive
exec_doc
to auto-exec cell when building docs (#699) - automatically escape YAML strings for title and description in frontmatter (#691)
- add
unbump
param tonbdev_bump_version
(#689) - install ghapi automatically (#690)
- add
nbdev_readme
(#688)
- add
readme_nb
config option (#668)
exporti
cells can cause showdocs exec to fail (#679)- missing .html suffix in links (#674)
- Add early return (#670), thanks to @dleen
- From-scratch rewrite of nbdev! nbdev now uses Quarto to create beautiful and full-featured websites
- nbdev2 is much faster than previous versions
- Note that you should run
nbdev_migrate_directives
after upgrading to use the new comment directive format (e.g#| export
instead of#export
)
- fix
show_doc
for properties (#635), thanks to @seeM nbdev_nb2md
throws error when called in a notebook (#381)
- Added webrick spec to Gemfile. (#615), thanks to @MarkB2
- Change doc() default for docments (#611), thanks to @muellerzr
- Better checks for cls and self (#596), thanks to @muellerzr
- Use the kernel defined in the kernelspec (#594), thanks to @dleen
- Add in repr for delegates (#589), thanks to @muellerzr
- Keep module in name when getting the "qualname" (#606), thanks to @muellerzr
- Fix decimal bug (#604), thanks to @muellerzr
- Use the kernel defined in the kernelspec (#594), thanks to @dleen
- Misc bug fixes + tests (#593), thanks to @muellerzr
- Fix show doc for object, class methods. (#621), thanks to @v-ahuja
- Fix show doc for keywords. (#619), thanks to @v-ahuja
- Including
@dataclass
breaksnbdev_build_lib
(#595) nbdev_nb2md
throws error when called in a notebook (#381)
- Don't build NBs with no
#default_exp
nbdev_build_libs
now works on a single file even without asettings.ini
or any#default_exp
cell- Handle
#|
as directive prefix
- nbdev_nb2md throws error when called in a notebook (#381)
- Update dependencies
- Pin jinja2 due to deprecation bug in nbconvert
- Update dependencies
- Make sure docments have linking capability (#585), thanks to @muellerzr
- better logging for duplicate titles (#584), thanks to @hamelsmu
- Fix repr issue with
show_doc
(#588), thanks to @muellerzr
- upgrade nbconvert dep to v6
- fix verbose flag
- skip symlinks in recursive glob (#515)
- make recursive behavior for
nbdev_build_docs
consistent withnbdev_build_lib
(#467), thanks to @hamelsmu
- Allow for a one-time only (potentially) .py -> .ipynb generation (#369)
- Images with
attachment:
break export (#501), thanks to @yacchin1205 - Docs nav doesn't work on gitlab (#488), thanks to @tcapelle
- clean up all instances of recursive (#470), thanks to @hamelsmu
- After 'conda install -c fastai nbdev', error "
HTMLExporter
object has no attributetemplate_path
" (#431)
- support windows (#392), thanks to @mszhanyi
nbdev_new
: get template from latest release asset (#382), thanks to @hamelsmu- Add more license options
- Fix recursive flag (#433), thanks to @hamelsmu
- conda not installing nbdev properly on WSL2 (#430)
- fix nb2md (#424), thanks to @hamelsmu
nbdev_build_lib
seems to convert more notebooks than expected (#423)- fix default arg issue with
nbdev_update_lib
(#416), thanks to @hamelsmu nbdev_update_lib
errors out when fname not supplied (#415)nbdev_new
fails on calling the GitHub API without guidance (#404)- fix recurse issue (#391), thanks to @hamelsmu
nbdev_build_docs
----ModuleNotFoundError: No module named 'fastcore' (#390)nbdev_test_nbs
--fname broke in 1.1.7 (#388)- set recursive=True for docs (#387), thanks to @hamelsmu
- fix url for getting branch (#386), thanks to @hamelsmu
nbdev_nb2md
throws error when called in a notebook (#381)
nbdev_new
should grab files from a release asset innbdev_template
(#383)- Use Jekyll Theme instead of vendoring all required files (#379)
- Create relevant directories in
docs/_data
if do not already exist (#377)
- Clean Google Colab metadata and line endings (#364), thanks to @muellerzr
- add ability to find notebooks recursively (#359), thanks to @hamelsmu
- Add
bare
flag tonbdev_build_lib
(#336) - install git hooks in
nbdev_new
(#308) nbdev_new
now works on an existing cloned repo, instead of creating a new repo (#307)
nbdev_update_lib --fname notebook.ipynb
crashes (whilenbdev_update_lib
works) (#341)- Copy new files only if they don't exist for nbdev_new (#309)
- update fastcore requirement (#281)
- Make CLI faster by removing unneeded imports and moving CLI commands to source modules (#271)
- Move
Config
to fastcore (#280)
- Remove magics (#269)
- Removed callbacks (#253), thanks to @pete88b
- move conda packager to
fastrelease
(#252)
- Place source code below heading on #exports (#265), thanks to @hamelsmu
- always skip cells labeled "skip" in test (#257)
- restrict nbconvert<6 to avoid upgrade problems (#249)
- When generating docs, import cells are run even if not exported (#248)
- Fix: correct notebook2html path operation for Windows. (#239)
- remove numpy conda dep and update to fastcore 1.0.5 (#241)
- allow nbdev imports when not in an nbdev project (#238)
- Magic flags for tests (#232)
- Add ability to have Colab badges on pages (#210)
- Support for
doc_path
(#235)
- Remove colab vendor specific tags which cause
nbdev_build_docs
to fail (#207) - hooks folder inside .git must be manually created before
nbdev_install_git_hooks
(#230) - updates to how backtick names are converted to doc links (#218)
- Initial release