You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.4 KiB
46 lines
1.4 KiB
# uv project notes
|
|
|
|
Guide: (https://www.loopwerk.io/articles/2024/migrate-poetry-to-uv/)
|
|
|
|
## install uv
|
|
|
|
Follow the [instructions](https://docs.astral.sh/uv/getting-started/installation/)
|
|
|
|
## set up a virtual environment
|
|
|
|
This assumes you have uv installed.
|
|
|
|
```bash
|
|
uv venv --python 3.12.0
|
|
source .venv/bin/activate
|
|
```
|
|
|
|
or you can run uv without setting up a virtual environment
|
|
|
|
```bash
|
|
# use --sytem to run the tool ruff not in a virtual environment
|
|
uv run ruff check --system
|
|
```
|
|
|
|
# pyproject.toml differences
|
|
|
|
In Poetry, the project is described in the [tool.poetry] section of the pyproject.toml file. In uv, the project is described in the [project] section of the pyproject.toml file.
|
|
|
|
To convert, we use ```pdm``` to get us most of the way there followin [1]
|
|
|
|
```bash
|
|
uvx pdm import pyproject.toml
|
|
```
|
|
|
|
There were several differences in the pyproject.toml file that needed to be addressed manually.
|
|
The authors field needed to be in the form:
|
|
|
|
```toml
|
|
authors = [ { name = "John Doe", email = "email"}]
|
|
license = {text = "MIT License"}
|
|
```
|
|
|
|
There weren't a lot of good docs on these formatting issues, and the serde error messages were only helpful if you had some idea of what the goal was already. I ended up referring to [1] and [2] for examples.
|
|
|
|
[1](https://packaging.python.org/en/latest/flow/#the-configuration-file)
|
|
[2](https://reinforcedknowledge.com/a-comprehensive-guide-to-python-project-management-and-packaging-concepts-illustrated-with-uv-part-i/) |