Create Project From a Template#
yarn create
やnpm create
と同様に、PDMはテンプレートからのプロジェクトの初期化や作成もサポートしています。テンプレートはpdm init
の位置引数として、次のいずれかの形式で指定されます。
pdm init django
- テンプレートhttps://github.com/pdm-project/template-django
からプロジェクトを初期化しますpdm init https://github.com/frostming/pdm-template-django
- Git URLからプロジェクトを初期化します。HTTPSとSSH URLの両方を使用できます。pdm init django@v2
- 特定のブランチまたはタグをチェックアウトします。完全なGit URLもサポートしています。pdm init/path/to/template
- ローカルファイルシステムのテンプレートディレクトリからプロジェクトを初期化します。pdm init minimal
- 組み込みの"minimal"テンプレートで初期化します。これはpyproject.toml
だけを生成します。
pdm init
はデフォルトの組み込みテンプレートを使用します。
プロジェクトは現在のディレクトリで初期化され、同じ名前の既存のファイルは上書きされます。-p <path>
オプションを使用して、新しいパスにプロジェクトを作成することもできます。
Contribute a template#
テンプレート引数の最初の形式に従って、pdm init <name>
はhttps://github.com/pdm-project/template-<name>
にあるテンプレートリポジトリを参照します。テンプレートを投稿するには、テンプレートリポジトリを作成し、所有権をpdm-project
組織に転送するリクエストを確立します(これはリポジトリ設定ページの下部にあります)。組織の管理者はリクエストを確認し、後続のステップを完了します。転送が受け入れられると、あなたはリポジトリメンテナとして追加されます。
Requirements for a template#
テンプレートリポジトリは、PEP-621準拠のメタデータを持つpyproject.toml
ファイルを含むpyprojectベースのプロジェクトである必要があります。その他の特別な構成ファイルは必要ありません。
Project name replacement#
初期化時に、テンプレート内のプロジェクト名が新規プロジェクトの名前に置換されます。これは、再帰的な全文検索および置換によって行われます。インポート名も同様に置換されます。インポート名は、英数字以外のすべての文字をアンダースコアおよび小文字に置換することによってプロジェクト名から導出されます。
たとえば、テンプレート内のプロジェクト名がfoo-project
で、bar-project
という名前の新しいプロジェクトを初期化する場合、次のように置換されます。
foo-project
-> すべての.md
ファイルと.rst
ファイルが含まれているbar-project
foo_project
-> すべての.py
ファイルが含まれているbar_project
foo_project
-> ディレクトリ名がbar_project
foo_project.py
-> ファイル名がbar_project.py
したがって、インポート名がプロジェクト名から派生していない場合は、名前の置換はサポートされません。
Use other project generators#
より強力なプロジェクトジェネレータを探している場合は、--cookiecutter
オプションでcookiecutterを、--copier
オプションでcopierを使用できます。
cookiecutter
とcopier
を使用するには、それぞれインストールする必要があります。これを行うにはpdm self add <package>
を実行します。これらを使用するには:
1 2 3 |
|