55from pathlib import Path
66
77import tomlkit
8+ from tomlkit .items import Table
89
910from commitizen .providers .base_provider import TomlProvider
1011
@@ -41,11 +42,11 @@ def get(self, document: tomlkit.TOMLDocument) -> str:
4142
4243 def set (self , document : tomlkit .TOMLDocument , version : str ) -> None :
4344 try :
44- document ["workspace" ][ " package" ]["version" ] = version # type: ignore[index]
45+ document ["package" ]["version" ] = version # type: ignore[index]
4546 return
4647 except tomlkit .exceptions .NonExistentKey :
4748 ...
48- document ["package" ]["version" ] = version # type: ignore[index]
49+ document ["workspace" ][ " package" ]["version" ] = version # type: ignore[index]
4950
5051 def set_version (self , version : str ) -> None :
5152 super ().set_version (version )
@@ -69,22 +70,23 @@ def set_lock_version(self, version: str) -> None:
6970 excluded_workspace_members = cargo_toml_content .get ("workspace" , {}).get (
7071 "exclude" , []
7172 )
72- members_inheriting = []
73+ members_inheriting : list [ str ] = []
7374
7475 for member in workspace_members :
7576 for path in glob .glob (member , recursive = True ):
7677 if matches_exclude (path , excluded_workspace_members ):
7778 continue
7879 cargo_file = Path (path ) / "Cargo.toml"
7980 cargo_toml_content = tomlkit .parse (cargo_file .read_text ())
80- try :
81- version_workspace = cargo_toml_content ["package" ]["version" ][ # type: ignore[index]
82- "workspace"
83- ]
84- if version_workspace is True :
85- package_name = cargo_toml_content ["package" ]["name" ] # type: ignore[index]
86- members_inheriting .append (package_name )
87- except tomlkit .exceptions .NonExistentKey :
81+
82+ package_version = cargo_toml_content ["package" ]["version" ] # type: ignore[index]
83+ if (
84+ isinstance (package_version , Table )
85+ and package_version ["workspace" ] is True
86+ ):
87+ package_name = cargo_toml_content ["package" ]["name" ]
88+ members_inheriting .append (package_name )
89+ else :
8890 continue
8991
9092 for i , package in enumerate (packages ):
0 commit comments