Paleofuturistic Python
The Python development workflow your past self had always hoped for is finally here!
This is a detached fork of Straight to the Money 💰. Check it out if this template is a bit too involved for you and you want to go with something more simple.
Usage
Prerequisite: uv
(Installing uv should also provide you with uvx.
Give their docs a look-over before continuing if you want to get a better understanding of what is going on under the hood in the steps below.)
Setup
- Initialize with
uvx cruft create --checkout latest https://github.com/schubergphilis/paleofuturistic_python
and fill in your project details. - Optional: validate the setup with
uv run python -c "import paleofuturistic_python; print(paleofuturistic_python.hello())"
(replacepaleofuturistic_python
with your project name/slug). - Either, run
uv lock
to generate a .lock file, or runuv add some_lib_you_need
if your project has dependencies.
Workflow
- Download dependencies (if you need any):
uv add some_lib_you_need
- Develop (optional, tinker:
uvx --refresh --with . ptpython
) - QA:
- Format:
uvx ruff format
- Lint:
uvx ruff check
- Type check:
uvx mypy
- Test:
uv run python -m unittest
- Format:
- Build:
uv build
- Document:
uvx --with mkdocstrings[python] mkdocs build
- Publish:
uv publish
Can it really be that simple? Well, eventually yes, but you will need to set up some connections and credentials still, of course. For a slightly more elaborate walkthrough on that, see the docs.
Still skeptical? See the about instead. Or, have a look at a kitchen sink project created with this template.