1
0
Fork 0
commitizen/commitizen/providers/uv_provider.py
Daniel Baumann 167a3f8553
Adding upstream version 4.6.0+dfsg.
Signed-off-by: Daniel Baumann <daniel@debian.org>
2025-04-21 11:40:48 +02:00

41 lines
1.2 KiB
Python

from __future__ import annotations
from pathlib import Path
from typing import TYPE_CHECKING
import tomlkit
from commitizen.providers.base_provider import TomlProvider
if TYPE_CHECKING:
import tomlkit.items
class UvProvider(TomlProvider):
"""
uv.lock and pyproject.tom version management
"""
filename = "pyproject.toml"
lock_filename = "uv.lock"
@property
def lock_file(self) -> Path:
return Path() / self.lock_filename
def set_version(self, version: str) -> None:
super().set_version(version)
self.set_lock_version(version)
def set_lock_version(self, version: str) -> None:
pyproject_toml_content = tomlkit.parse(self.file.read_text())
project_name = pyproject_toml_content["project"]["name"] # type: ignore[index]
document = tomlkit.parse(self.lock_file.read_text())
packages: tomlkit.items.AoT = document["package"] # type: ignore[assignment]
for i, package in enumerate(packages):
if package["name"] == project_name:
document["package"][i]["version"] = version # type: ignore[index]
break
self.lock_file.write_text(tomlkit.dumps(document))