Skip to content

ruksi/genvi

Repository files navigation

workflow: ci license: MIT pre-commit: enabled code style: ruff class: wizard alignment: chaotic evil


genvi logo

O generation of vipers, how can ye, being evil, speak good things?
- Matthew 12:34


genvi β€” A sadistic Python project wizard πŸπŸ§™


⚑️ Quickstart

curl -fSL https://raw.githubusercontent.com/ruksi/genvi/main/magic/conjure.sh | bash

🀏 Requirements

python>=3.8, git and make.

πŸ‘‰οΈ What?

"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.

πŸ€” Why?

"Who would want to manage a project like this?" by Anonymous Gnu πŸƒ

Scratching my own itch, see ABOUT.md to learn more

βœ‹ Usage

Quick

curl -fSL https://raw.githubusercontent.com/ruksi/genvi/main/magic/conjure.sh | bash

Manual

  1. Decide the project name and clone this repository

    git clone git@github.com:ruksi/genvi.git my-project
    cd my-project
  2. 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

✍️ License

This project is released under the MIT License.

πŸ§‘β€πŸ’» Contributions

Sure, the README template should get you started as genvi itself works like the projects it generates.

About

πŸπŸ§™ A sadistic Python project wizard

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published