Skip to content

Commit 9de9f24

Browse files
committed
chore: switch to UV
1 parent b38fac1 commit 9de9f24

5 files changed

Lines changed: 32 additions & 60 deletions

File tree

.github/workflows/tests.yaml

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,20 @@ jobs:
1414
- name: 🛎️ Check out repository
1515
uses: actions/checkout@v4
1616

17-
- name: 📦 Set up Poetry
18-
run: pipx install poetry==2.0.0
17+
- name: 📦 Set up UV
18+
uses: astral-sh/setup-uv@v5
19+
with:
20+
version: "0.6.5"
21+
enable-cache: true
1922

2023
- name: 🐍 Set up Python
2124
uses: actions/setup-python@v5
2225
with:
2326
python-version: 3.11
24-
cache: poetry
27+
python-version-file: "pyproject.toml"
2528

2629
- name: 🔨 Install dependencies
27-
run: poetry install --without dev
30+
run: uv sync --group test
2831

2932
- name: ✅ Run unit tests
30-
run: poetry run pytest -vvv
33+
run: uv run pytest -vvv

.gitignore

Lines changed: 5 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
1-
# IntelliJ project files
1+
# IDE and system files
2+
.vscode/
23
.idea/
4+
.DS_Store
5+
6+
# IntelliJ project files
37
.run/
48
*.iml
59
out
@@ -89,33 +93,6 @@ target/
8993
profile_default/
9094
ipython_config.py
9195

92-
# pyenv
93-
# For a library or package, you might want to ignore these files since the code is
94-
# intended to run in multiple environments; otherwise, check them in:
95-
# .python-version
96-
97-
# pipenv
98-
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
99-
# However, in case of collaboration, if having platform-specific dependencies or dependencies
100-
# having no cross-platform support, pipenv may install dependencies that don't work, or not
101-
# install all needed dependencies.
102-
#Pipfile.lock
103-
104-
# poetry
105-
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
106-
# This is especially recommended for binary packages to ensure reproducibility, and is more
107-
# commonly ignored for libraries.
108-
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
109-
#poetry.lock
110-
111-
# pdm
112-
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
113-
#pdm.lock
114-
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
115-
# in version control.
116-
# https://pdm.fming.dev/#use-with-ide
117-
.pdm.toml
118-
11996
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
12097
__pypackages__/
12198

.pre-commit-config.yaml

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
ci:
33
autoupdate_schedule: quarterly
4-
skip: ["identity", "poetry-lock", "pytest", "coverage-badge"]
4+
skip: ["identity", "uv-lock", "pytest", "coverage-badge"]
55

66
repos:
77
- repo: meta
@@ -31,12 +31,10 @@ repos:
3131
- id: check-ast
3232
name: Validate Python
3333

34-
- repo: https://github.com/python-poetry/poetry
35-
rev: 2.0.0
34+
- repo: https://github.com/astral-sh/uv-pre-commit
35+
rev: 0.6.5
3636
hooks:
37-
- id: poetry-check
38-
name: Check that the Poetry configuration is valid
39-
- id: poetry-lock
37+
- id: uv-lock
4038
name: Check that the lock file is up-to-date
4139

4240
# Formatting

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<div align="center">
22

33
[![Python](https://img.shields.io/badge/Python-3.11+-blue.svg)](https://www.python.org/downloads/release/python-3110/)
4-
[![Poetry](https://img.shields.io/endpoint?url=https://python-poetry.org/badge/v0.json)](https://python-poetry.org/)
4+
[![uv](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv)
55
[![tests](https://github.com/Bilbottom/python-template/actions/workflows/tests.yaml/badge.svg)](https://github.com/Bilbottom/python-template/actions/workflows/tests.yaml)
66
[![coverage](coverage.svg)](https://github.com/dbrgn/coverage-badge)
77
[![GitHub last commit](https://img.shields.io/github/last-commit/Bilbottom/python-template)](https://shields.io/badges/git-hub-last-commit)

pyproject.toml

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,25 @@
1+
[build-system]
2+
requires = ["setuptools"]
3+
build-backend = "setuptools.build_meta"
4+
15
[project]
26
name = "python-template"
37
version = "0.0.0"
48
description = ""
59
authors = [{name = "Bilbottom"}]
610
readme = "README.md"
711
requires-python = ">=3.11"
8-
dynamic = ["dependencies"]
9-
10-
[build-system]
11-
requires = ["poetry-core"]
12-
build-backend = "poetry.core.masonry.api"
13-
12+
dependencies = []
1413

15-
[tool.poetry]
16-
packages = [{include = "src"}]
17-
18-
[tool.poetry.group]
19-
dev.optional = false
20-
test.optional = false
21-
22-
[tool.poetry.group.dev.dependencies]
23-
coverage-badge = "^1.1.0"
24-
pre-commit = "^3.6.2"
25-
26-
[tool.poetry.group.test.dependencies]
27-
pytest = "^8.0.2"
28-
pytest-cov = "^4.1.0"
14+
[dependency-groups]
15+
dev = [
16+
"coverage-badge>=1.1.0",
17+
"pre-commit>=4.1.0",
18+
]
19+
test = [
20+
"pytest>=8.3.5",
21+
"pytest-cov>=6.0.0",
22+
]
2923

3024

3125
[tool.pytest.ini_options]

0 commit comments

Comments
 (0)