O generation of vipers, how can ye, being evil, speak good things?
- Matthew 12:34
genvi
— A sadistic Python project wizard 🐍🧙
curl -fSL https://raw.githubusercontent.com/ruksi/genvi/main/magic/conjure.sh | bash
python>=3.8
, git
and make
.
"I would sacrifice anything for some good quality code." by Anonymous Principal Engineer 👩💻
genvi
(generation of vipers 🐍) is a hyper-opinionated
tool for creating Python projects. It's strict, some could even say too strict.
Borderline evil.
Each new project is configured with:
🐈⬛ eery ruff format
as the code style, single quoted
🪝 sadistic pre-commit hooks
to enforce conventions
🪄 automagical GitHub actions
to verify incoming pull requests
🧙 bewitching testing setup with pytest
with 100% coverage requirement
✴️ occult project management though make
for development
🫴 plethora of style and type checkers included in ruff
and mypy
If you want a more concrete example of a genvi
project, you are looking at one.
genvi
itself follows the same rules and uses the same tools. Behind the scenes,
creating a new project renames a few files and rewrites a bit of content.
"Who would want to manage a project like this?" by Anonymous Gnu 🐃
Scratching my own itch, see ABOUT.md
to learn more
curl -fSL https://raw.githubusercontent.com/ruksi/genvi/main/magic/conjure.sh | bash
-
Decide the project name and clone this repository
git clone git@github.com:ruksi/genvi.git my-project cd my-project
-
Decide a clean package name, run the wizard and follow instruction
# package name should be something you can `import` in Python # preferably just lowercase ASCII letters make package=myproject
This project is released under the MIT License.
Sure, the README template
should get you started
as genvi
itself works like the projects it generates.