nbdev
est une plateforme de développement basée sur des notebooks. Écrivez simplement des cahiers avec un balisage léger et obtenez gratuitement une documentation, des tests, une intégration continue et un packaging de haute qualité !
nbdev
rend le débogage et la refactorisation de votre code beaucoup plus faciles que dans les environnements de programmation traditionnels puisque vous avez toujours des objets actifs à portée de main. nbdev
promeut également les meilleures pratiques d'ingénierie logicielle car les tests et la documentation sont de première classe.
nbdev-index
)__all__
nbdev fonctionne sur macOS, Linux et la plupart des systèmes d'exploitation de style Unix. Cela fonctionne sous Windows sous WSL, mais pas sous cmd ou Powershell.
Vous pouvez installer nbdev avec pip :
pip install nbdev
… ou avec conda (ou mamba) :
conda install -c fastai nbdev
Notez que nbdev
doit être installé dans le même environnement Python que celui que vous utilisez pour Jupyter et votre projet.
La meilleure façon d'apprendre à utiliser nbdev est de suivre soit la procédure écrite, soit la procédure vidéo :
Alternativement, il existe une version abrégée de la présentation vidéo avec des sections de codage accélérées à l'aide de la bibliothèque Python unsilence
: c'est 27 minutes plus rapide, mais un peu plus difficile à suivre.
Vous pouvez également exécuter nbdev_help
depuis le terminal pour voir la liste complète des commandes disponibles :
!n bdev_help
nbdev_bump_version Increment version in settings.ini by one
nbdev_changelog Create a CHANGELOG.md file from closed and labeled GitHub issues
nbdev_clean Clean all notebooks in `fname` to avoid merge conflicts
nbdev_conda Create a `meta.yaml` file ready to be built into a package, and optionally build and upload it
nbdev_create_config Create a config file.
nbdev_docs Create Quarto docs and README.md
nbdev_export Export notebooks in `path` to Python modules
nbdev_filter A notebook filter for Quarto
nbdev_fix Create working notebook from conflicted notebook `nbname`
nbdev_help Show help for all console scripts
nbdev_install Install Quarto and the current library
nbdev_install_hooks Install Jupyter and git hooks to automatically clean, trust, and fix merge conflicts in notebooks
nbdev_install_quarto Install latest Quarto on macOS or Linux, prints instructions for Windows
nbdev_merge Git merge driver for notebooks
nbdev_migrate Convert all markdown and notebook files in `path` from v1 to v2
nbdev_new Create an nbdev project.
nbdev_prepare Export, test, and clean notebooks, and render README if needed
nbdev_preview Preview docs locally
nbdev_proc_nbs Process notebooks in `path` for docs rendering
nbdev_pypi Create and upload Python package to PyPI
nbdev_readme Create README.md from readme_nb (index.ipynb by default)
nbdev_release_both Release both conda and PyPI packages
nbdev_release_gh Calls `nbdev_changelog`, lets you edit the result, then pushes to git and calls `nbdev_release_git`
nbdev_release_git Tag and create a release in GitHub for the current version
nbdev_requirements Writes a `requirements.txt` file to `directory` based on settings.ini.
nbdev_sidebar Create sidebar.yml
nbdev_test Test in parallel notebooks matching `path`, passing along `flags`
nbdev_trust Trust notebooks matching `fname`
nbdev_update Propagate change in modules matching `fname` to notebooks that created them
nbdev_update_license Allows you to update the license of your project.
R : Vous ne devez pas avoir de cellules qui ne sont pas exportées et qui contiennent un mélange d'instructions import
et d'autres codes. Par exemple, ne faites pas ceci dans une seule cellule :
import some_module
some_module . something ()
Au lieu de cela, divisez-le en deux cellules, l'une qui import some_module
et l'autre qui importe some_module.something()
.
La raison en est que lorsque nous créons votre site Web de documentation, nous veillons à ce que toutes les signatures des fonctions que vous documentez soient à jour, en exécutant les importations, les cellules exportées et les fonctions show_doc
dans vos blocs-notes. Lorsque vous mélangez des importations avec un autre code, cet autre code sera également exécuté, ce qui peut provoquer des erreurs (ou du moins des ralentissements) lors de la création de votre site Web.
R : Lorsque vous configurez votre premier projet, nbdev tentera de télécharger et d'installer automatiquement Quarto pour vous. C'est le programme que nous utilisons pour créer votre site Web de documentation.
Le processus d'installation standard de Quarto nécessite un accès root, et nbdev vous demandera donc votre mot de passe root lors de l'installation. Pour la plupart des gens, cela fonctionnera correctement et tout sera géré automatiquement. Si tel est le cas, vous pouvez ignorer le reste de cette section, qui traite de l'installation sans accès root.
Si vous devez installer Quarto sans accès root sous Linux, commencez par cd
là où vous souhaitez le stocker, puis téléchargez Quarto et tapez :
dpkg -x quarto * .deb .
mv opt/quarto ./
rmdir opt
mkdir -p ~ /.local/bin
ln -s " $( pwd ) " /quarto/bin/quarto ~ /.local/bin
Pour utiliser cette version non root de Quarto, vous aurez besoin ~/.local/bin
dans votre variable d'environnement PATH
. (Vous pouvez également modifier l'étape ln -s
pour placer le lien symbolique ailleurs sur votre chemin.)
R : Regardez cette vidéo. Ne vous inquiétez pas, nous obtenons toujours cela aussi, même si nous avons utilisé nbdev
pour un large éventail de projets logiciels « très sérieux » au cours des trois dernières années, notamment des bibliothèques d'apprentissage profond, des clients API, des extensions de langage Python, des interfaces utilisateur de terminaux, etc. !
Si vous souhaitez contribuer à nbdev
, assurez-vous de consulter les directives de contribution. Ce projet adhère au code de conduite de fastai. En participant, vous êtes censé respecter ce code. En général, nous nous efforçons de respecter les meilleures pratiques généralement acceptées en matière de développement de logiciels open source.
Assurez-vous que les hooks git de nbdev
sont installés en exécutant nbdev_install_hooks
dans le référentiel cloné.
Copyright © 2019 et versions ultérieures fast.ai, Inc. Sous licence Apache, version 2.0 (la « Licence ») ; vous ne pouvez pas utiliser les fichiers de ce projet sauf en conformité avec la licence. Une copie de la licence est fournie dans le fichier LICENSE de ce référentiel.