This is a template intended to be used with Cookiecutter.
Invoke cookiecutter
and fill out information about your project:
cookiecutter git@github.com:vkottler/python-package-template.git
Example output (interactive):
name [Vaughn Kottler]: <Your Name>
email [vaughnkottler@gmail.com]: <your@email.com>
...
This template is tested on the following platforms:
macos-latest
windows-latest
ubuntu-latest
and Python versions:
python3.11
python3.12
The resulting template is a git repository with a config repository added as a top-level submodule.
Once the base template is generated, datazen runs because this package uses it for many useful code generation and other static file generation tasks.
The package is then linted, statically analyzed, tested and built into a distribution using vmklib. These are the core tasks that will be performed regularly during the package's life-cycle, so their initial success demonstrates that the package is already in a clean state and doesn't require additional boilerplate or setup. Simply begin adding code and continuing to perform these workflow tasks.
$ tree -a -I venv*|__pycache__|dist|*cov*|*-out|config|build|*.egg-info|tags|.git*|.*cache*|docs|mklocal -- package-name
package-name
├── .flake8
├── im
│ └── pydeps.svg
├── .isort.cfg
├── LICENSE
├── local
│ ├── configs
│ │ ├── license.yaml
│ │ ├── package.yaml
│ │ └── python.yaml
│ ├── templates
│ │ └── README.md.j2
│ └── variables
│ └── package.yaml
├── Makefile
├── manifest.yaml
├── mypy.ini
├── package_name
│ ├── app.py
│ ├── commands
│ │ ├── all.py
│ │ └── __init__.py
│ ├── dev_requirements.txt
│ ├── entry.py
│ ├── __init__.py
│ ├── __main__.py
│ ├── py.typed
│ └── requirements.txt
├── pyproject.toml
├── pytest.ini
├── README.md
├── setup.py
├── tasks
│ ├── conf.py
│ └── __init__.py
└── tests
├── data
│ ├── invalid
│ │ └── test.txt
│ └── valid
│ └── test.txt
├── __init__.py
├── resources.py
├── test_entry.py
└── test_resources.py
13 directories, 33 files