Cookiecutter is command-line utility that creates projects from cookiecutters (project templates), e.g. creating a Python package project from a Python package project template.
- Documentation: https://cookiecutter.readthedocs.io
- GitHub: https://github.com/cookiecutter/cookiecutter
This cookie assumes that you've installed PDM via these instructions
The post_gen_project.sh
hook can be modified to install PDM in virtual environment via pip, if
desired (though not recommended).
Function | Tool | Link |
---|---|---|
Dependency management | PDM | https://pdm.fming.dev/latest/ |
Documentation | MkDocs | https://www.mkdocs.org/ |
Documentation: theme | Material for MkDocs | https://squidfunk.github.io/mkdocs-material/ |
Documentation: auto docstrings | mkdocstrings-python | https://mkdocstrings.github.io/python/ |
Automated testing | Nox | https://nox.thea.codes/en/stable/index.html |
Testing | pytest | https://docs.pytest.org/en/7.3.x/ |
Linting | ruff | https://docs.astral.sh/ruff/ |
Type checking | Pyright | https://microsoft.github.io/pyright/#/ |
Formatting | ruff | https://docs.astral.sh/ruff/ |
Automated QA | pre-commit | https://pre-commit.com/ |
QA | isort | https://pycqa.github.io/isort/ |
QA | check-manifest | https://github.com/mgedmin/check-manifest |
Linting | SQLFluff | https://www.sqlfluff.com/ |
Documentation: Build and publish | GitHub Actions | https://docs.github.com/en/actions |
PyPI: Publish | GitHub Actions | https://docs.github.com/en/actions |
Using a Python environment with cookiecutter
installed, run:
cookiecutter https://github.cloud.capitalone.com/lno127/cookie.git
and complete the prompts.
cd <your project dir>
conda env create -f environment.yml
conda activate <your env name>
pdm install
git init
pre-commit install
This cookie executes a post-generation script (hooks/post_gen_project.sh
) that will:
1. Create a virtual environment via Conda
2. Install all development dependencies in your virtual environment
3. Install your project (editable) in your virtual environment
4. Initialize a git repo in your new project directory
5. Install pre-commit in your repo
As installed via this cookie, PDM will automatically detect the Conda virtual environment and operate within. See Working with Virtual Environments for other options.
Here are a few commands to get you started. For much more, see the CLI Reference or Manage Dependencies guide.
pdm add <package>
Example: pdm add numpy
pdm add -d <package>
Example: pdm add -d flake8
pdm add -dG <group name> <package>
Example: pdm add -dG qa flake8
pdm list
pdm list --graph
pdm export -o requirements.txt