File tree Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Original file line number Diff line number Diff line change 1+ from __future__ import annotations
2+
3+ from pathlib import Path
4+ from typing import TYPE_CHECKING
5+
6+ import tomlkit
7+
8+ from commitizen .providers .base_provider import TomlProvider
9+
10+ if TYPE_CHECKING :
11+ import tomlkit .items
12+
13+
14+ class UvProvider (TomlProvider ):
15+ """
16+ uv.lock and pyproject.tom version management
17+ """
18+
19+ filename = "pyproject.toml"
20+ lock_filename = "uv.lock"
21+
22+ @property
23+ def lock_file (self ) -> Path :
24+ return Path () / self .lock_filename
25+
26+ def set_version (self , version : str ) -> None :
27+ super ().set_version (version )
28+ self .set_lock_version (version )
29+
30+ def set_lock_version (self , version : str ) -> None :
31+ document = tomlkit .parse (self .lock_file .read_text ())
32+ name = self .config .settings .get ("name" )
33+
34+ packages : tomlkit .items .AoT = document ["package" ] # type: ignore[assignment]
35+ for i , package in enumerate (packages ):
36+ if package ["name" ] == name :
37+ document ["package" ][i ]["version" ] = version # type: ignore[index]
38+ break
39+ self .file .write_text (tomlkit .dumps (document ))
You can’t perform that action at this time.
0 commit comments