nbdev - Jupyter Notebook を使用して楽しい Python プロジェクトを作成する

(Create delightful python projects using Jupyter Notebooks)

Created at: 2019-11-19 01:37:35
Language: Jupyter Notebook
License: Apache-2.0

入門

注意: これは nbdev v2 であり、nbdev を最初から書き直したもので、後方互換性はありません。nbdev1 との違いはそれほど大きくありませんが、いくつかの変更が必要です。したがって、アップグレードする時間ができるまで nbdev1 を使い続けたい場合は、nbdev1.fast.aiで古いバージョンのドキュメントを見つけることができます。

requirements.txt
または
settings.ini
(つまり、依存関係として使用)でバージョン固定を使用
'nbdev<2'
して、nbdev のアップグレードを停止できます。


nbdev
探索的プログラミングのためのシステムです。軽量のマークアップでノートブックを作成するだけで、高品質のドキュメント、テスト、継続的インテグレーション、およびパッケージングを無料で入手できます!

nbdev
ライブオブジェクトを常に手元に置くことができるため、コードのデバッグとリファクタリングが従来のプログラミング環境よりもはるかに簡単になります。
nbdev
また、テストとドキュメンテーションは一流であるため、ソフトウェア エンジニアリングのベスト プラクティスを促進します。

  • ドキュメントはQuartoを使用して自動的に生成さ れ、 GitHub Pagesでホストされます。Docs は LaTeX をサポートし、検索可能で、自動的にハイパーリンクされます (多くのパッケージのすぐに使えるサポートを含む
    nbdev-index
    )。また、セルの表示方法を細かく制御できます。
  • パッケージを PyPI と conda に公開するだけでなく、パッケージのリリースを簡素化するツールも公開します。Python のベスト プラクティスが自動的に適用されます。たとえば、エクスポートされたオブジェクトのみが
    __all__
  • ノートブックとプレーンテキスト ソース コード間の双方向同期により、IDE を使用してコード ナビゲーションやクイック編集を行うことができます。
  • 通常のノートブック セルとして記述されたテストは、1 つのコマンドで並列に実行されます。どのテストを実行するかを細かく制御できます。
  • プッシュのたびにテストを実行し、マージのたびにドキュメントを再構築するGitHub アクションを使用して、すぐに使用できる継続的インテグレーション。
  • 不要なメタデータを消去し、マージの競合を人間が読める形式でレンダリングするツールを備えた、Git に適したノートブック。
  • …などなど!

インストール

ピップ付き:

pip install nbdev

コンダを使用:

conda install -c fastai nbdev

nbdev
Jupyter とプロジェクトの両方に使用する同じ Python 環境にインストールする必要があることに注意してください。

nbdev の使い方

nbdev の使用方法を学習する最善の方法は、次のチュートリアルのいずれかを完了することです (理解を深めるために、各ステップを繰り返すことをお勧めします)。

ビデオのステップバイステップ ウォークスルー(全画面表示するには、ビデオの右下にある小さな四角形をクリックします。別の Youtube ウィンドウで表示するには、Youtube ロゴをクリックします):

<iframe width="560" height="315" src="https://raw.githubusercontent.com/fastai/nbdev/master/ https://www.youtube-nocookie.com/embed/l7zS8Ld4_iA " frameborder=" 0" allow="加速度計; 自動再生; 暗号化されたメディア; ジャイロスコープ; ピクチャ イン ピクチャ" allowfullscreen> </iframe>

( Python ライブラリを使用して高速化されたコーディング セクションを備えた代替バージョンのウォーク

unsilence
スルーが利用可能です。これは 27 分高速ですが、理解するのが難しくなります。)

ターミナルから実行

nbdev_help
して、使用可能なコマンドの完全なリストを表示できます。

!nbdev_help
nbdev_bump_version              Increment version in settings.ini by one
nbdev_clean                     Clean all notebooks in `fname` to avoid merge conflicts
nbdev_conda                     Create and upload a conda package
nbdev_create_config             Create a config file
nbdev_deploy                    Deploy docs to GitHub Pages
nbdev_docs                      Generate docs
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_ghp_deploy                Deploy docs in `doc_path` from settings.ini to GitHub Pages
nbdev_help                      Show help for all console scripts
nbdev_install                   Install Quarto and the current library
nbdev_install_hooks             Install git hooks to clean and trust notebooks automatically
nbdev_install_quarto            Install latest Quarto on macOS or Linux, prints instructions for Windows
nbdev_migrate_directives        Convert all directives in `fname` from v1 to v2
nbdev_new                       Create a new project from the current git repo
nbdev_prepare                   Export, test, and clean notebooks
nbdev_preview                   Start a local docs webserver
nbdev_pypi                      Create and upload Python package to PyPI
nbdev_quarto                    Create Quarto docs and README.md
nbdev_release                   Release both conda and PyPI packages
nbdev_sidebar                   Create sidebar.yml
nbdev_test                      Test in parallel notebooks matching `fname`, passing along `flags`
nbdev_trust                     Trust notebooks matching `fname`
nbdev_update                    Propagate change in modules matching `fname` to notebooks that created them

よくある質問

Q: 「本格的な」ソフトウェア開発にノートブックを使用しないように誰かに言われました。

このビデオをご覧ください。深層学習ライブラリAPI クライアントPython 言語拡張機能ターミナル ユーザー インターフェイス

nbdev
などを含む、過去 3 年間にさまざまな「非常に本格的な」ソフトウェア プロジェクトに使用してきたにもかかわらず、心配する必要はありません。

野生の nbdev

fastai エコシステム

nbdev
は fastai エコシステムで革新的なソフトウェアを構築するために使用されてきました。これには、独自のレイヤード API とコールバック システム
fastai
を実装するディープ ラーニング ライブラリや 、動的な性質を活用して Python を強化する . さらに、非常に少数の開発者が、ソフトウェア エンジニアリング、データ サイエンス、機械学習、および DevOps ツールの大規模なエコシステムを維持および成長させることができます。
fastcore
nbdev

貢献する

に貢献したい場合は、必ず貢献ガイドライン

nbdev
を確認して ください。このプロジェクトは fastai の行動規範に準拠しています。参加することにより、この規範を支持することが期待されます。一般に、私たちはオープンソース ソフトウェア開発で一般的に認められているベスト プラクティスに従うよう努めています。

複製されたリポジトリでnbdev_install_hooks

nbdev
を実行して、 の git フックがインストールされて いることを確認し ます。

著作権

Copyright © 2019 onward fast.ai, Inc. Apache ライセンス、バージョン 2.0 (「ライセンス」) に基づいてライセンス供与されています。ライセンスに準拠する場合を除き、このプロジェクトのファイルを使用することはできません。ライセンスのコピーは、このリポジトリの LICENSE ファイルで提供されます。