A cookiecutter for generating a semi-opinionated scaffolding for python projects as well as python packages.
- Complete structure for a python project
- Ready for publishing to PyPI
- Full Github integration (github actions, issue template, pr templates etc)
- Code linter using flake8, isort, and black
- Code formatting using isort and black
- Pytest integration for testing
- Type checking using mypy
- Using the
pyproject.toml
for most tool configuration, project metadata according to pep 621, and minimum build system requirements according to pep 518 - More goodies coming soon
You can read more about these choices under Tool choices and design considerations
- python >= 3.8 (comes with pip)
- cookiecutter >= 2.1.1
In order to generate your first project run:
cookiecutter https://github.com/ali92hm/cookiecutter-pyproject
Cookiecutter will prompt you for the following inputs:
project_name [Sample project]: The name for your project (Please don't use special characters, space is file)
project_description [Generated sample project from cookiecutter-pyproject]: Short description of your project
author_full_name [Jane Doe]: Your full name
author_email [[email protected]]: Your email address
github_organization [janeDoe]: The name of the github organization this code will be hosted. You can use your own github organization
project_repo []: This is the url to your repository, you can change it if you want
license:
1 - MIT License
2 - BSD 2-Clause License
3 - BSD 3-Clause License
4 - ISC License
5 - Apache License Version 2.0
6 - GNU General Public License Version 3
7 - Unlicense
8 - "Not open source"
Choose from 1, 2, 3, 4, 5, 6, 7 8 [1]: Pick the license you want to use
If you encounter any problems or have any question, please file an issue.
We welcome contributions to this project. Please refer to the CONTRIBUTING to get started.
Everyone interacting in this project's codebases, issue trackers, chat rooms, and mailing lists is expected to follow the CODE_OF_CONDUCT