Features¶
Pyfaro wraps uv, Ruff, ty and pytest behind one command. Every command below
is implemented in 0.5.0-beta.1 or on main.
Project lifecycle¶
| Command | What it does | Delegates to |
|---|---|---|
create |
Create a packaged library (lib), command-line app (cli) or FastAPI app (fastapi) |
nothing, templates only |
init |
Preview or apply Pyfaro initialization of a new or existing project | uv |
sync |
Create or update uv.lock and the project environment |
uv |
add and remove |
Edit dependencies and the lock file | uv |
run |
Run a command, or a named task from [tool.pyfaro.tasks], in the project environment |
uv |
dev |
Run the development server (the fastapi preset runs Uvicorn with reload) or process, supervised |
uv, Uvicorn |
python |
List, install or pin Python versions | uv |
build |
Build a source distribution and a wheel with the project's own build backend | uv |
Code quality¶
| Command | What it does | Delegates to |
|---|---|---|
lint |
Lint with Ruff | Ruff |
fmt |
Format with Ruff, or check formatting | Ruff |
type |
Type-check | ty |
check |
Format check, lint and type check in one gate, with optional --fix |
Ruff, ty |
test |
Run the tests | pytest |
Diagnostics¶
| Command | What it does |
|---|---|
tools |
Show where uv, Ruff, ty and pytest are found, and their versions |
doctor |
Read-only report on configuration, environment and tools |
Design principles¶
- No second resolver. Pyfaro never resolves, installs or locks packages; uv does. See How it works.
- Your configuration stays yours. Ruff, ty and pytest read their own
settings. Pyfaro only adds an optional
[tool.pyfaro]table. - Nothing happens behind your back.
checkwrites nothing without--fix,adddoes not install, and Python is downloaded only by an explicitpython install. - Honest exit codes. Delegated commands return the tool's own code. See Exit codes.
Planned, not available
Workspaces are on the roadmap but are not implemented. They do not appear
in pyfaro --help.
Next steps¶
- Start with the first steps.
- Build an API end to end: A FastAPI app.
- Look up flags in the command-line reference.
- Learn the concepts behind the commands.