Python Project Generation Tool
A fully customizable Python application to bootstrap Poetry-based boilerplate for you to start developing your Python applications quicker! Includes linting and Pytest libraries.
It will create a new directory for your project (or use the current directory), initialise a git repository, create a virtual environment, and install some basic dependencies for Testing, Linting and more. Optionally, it can also create a GitHub repository for you and push the initial commit(s).
Latest Version : v0.12.0
Testing
The generated project includes pytest and some related plugins to allow you to set up testing straight away.
Write your tests in the tests
directory and run them with pytest
.
Linting
The generated project includes Ruff for linting and code style formatting. Mypy is installed for type checking. These are set quite strictly by default, but you can edit the tools configuration in the pyproject.toml
file.
Documentation
The generated project includes mkdocs and a generated skeleton for you to get started with your documentation. The documentation is written in Markdown and can be found in the docs
directory. The project will also include the mkdocs-material theme, which is a popular theme for MkDocs used in many open-source projects.
Tip
The Testing, Linting and Documentation tools are all optional and can be removed or replaced with your preferred tools. There is also a --bare
option to generate a project without any of these tools.
Customize the generated project
You can add extra or edited files to the generated project by adding them to the ~/.pymaker/template
directory. The files in this directory will be copied into the generated project, overwriting any existing files with the same name.
It is also possible to dump the whole template into this folder or the current folder so full customization and even removal of files is possible.
Pre-commit
The generated project uses pre-commit to run some checks on the code before it is committed. This is a great tool to help keep your code clean.
To install pre-commit, run the following command from inside your venv:
$ pre-commit install
pre-commit installed at .git/hooks/pre-commit
GitHub Actions and Configuration
By default the generated project includes a GitHub Actions workflow to run Dependabot to keep your dependencies up to date. There are also standard templates for Pull Request and Issues.
The plan is to add more workflows in the future, for example running tests and more.
Changelog Generator
Once you have at least one GitHub release, you can generate a CHANGELOG.md
file automatically from this, using the included github-changelog-md tool.
You can run this manually by running the following command from inside your virtual environment:
$ poe changelog
You need to have a GitHub Personal Access Token set in the config file, see the instructions here for more information.
Community related files
To aid in community building, the generated project includes a CODE_OF_CONDUCT.md
file. This is based on the Contributor Covenant standard.
Future releases will include other Community related files (for example an AUTHORS
file). There are also blank CONTRIBUTING.md
and CHANGELOG.md
files. The CHANGELOG.md
file can be auto-generated.
Contributing to this Project
For information on how to contribute to the project, see the CONTRIBUTING.md
file in the root of the repository or on this website