``` uv init --python 3.12 --name $NAME --description $DESC $PATH ``` If you don't provide a path, the project is created in the CWD. Recommended Python libraries for most industrialized development projects: ``` uv add --dev pytest mypy black ruff "bandit[toml]" ``` ### Application: `--app` The **default** project structure is: ``` example-app ├── .venv │   ├── bin │   ├── lib │   └── pyvenv.cfg ├── .python-version ├── README.md ├── main.py ├── pyproject.toml └── uv.lock ``` ### Python package: `--package` ``` example-pkg ├── .python-version ├── README.md ├── pyproject.toml └── src └── example_pkg └── __init__.py ``` - No `.venv` - No `main.py` - Creates a `src` directory with a package directory inside, using the project $PATH, but replacing dashes with underscores - Adds a build system definition to the `pyproject.toml` file - Adds a command definition to the `pyproject.toml` file - The package can be used as a command, run with `uv run $PATH`, and will execute the `__init__.py` file ### Python library: `--lib` ``` example-lib ├── .python-version ├── README.md ├── pyproject.toml └── src └── example_lib ├── py.typed └── __init__.py ``` You can import and execute the example function with: ``` uv run python -c "import example_lib; print(example_lib.hello())" ``` ### Python script at $PATH: `--script` Creates a script named after $PATH. ### Bare project: `--bare` Only creates a `pyproject.toml` file. ### Version management Show the version, except for scripts: ``` uv version --short ``` Set up git: ``` git init git add * ```