11from __future__ import annotations
22
3- import fnmatch , glob
3+ import fnmatch
4+ import glob
45from pathlib import Path
5- from typing import TYPE_CHECKING , Iterable , Any , cast
6+ from typing import TYPE_CHECKING , Any , cast
67
78from tomlkit import TOMLDocument , dumps , parse
89from tomlkit .exceptions import NonExistentKey
10+
911from commitizen .providers .base_provider import TomlProvider
1012
1113if TYPE_CHECKING :
14+ from collections .abc import Iterable
15+
1216 from tomlkit .items import AoT
1317
1418
@@ -56,8 +60,8 @@ def set_lock_version(self, version: str) -> None:
5660 return
5761
5862 ws = _table_get (cargo_toml , "workspace" ) or {}
59- members = cast (list [str ], ws .get ("members" , []) or [])
60- excludes = cast (list [str ], ws .get ("exclude" , []) or [])
63+ members = cast (" list[str]" , ws .get ("members" , []) or [])
64+ excludes = cast (" list[str]" , ws .get ("exclude" , []) or [])
6165 inheriting = _workspace_inheriting_member_names (members , excludes )
6266 _lock_set_versions (packages , inheriting , version )
6367 self .lock_file .write_text (dumps (cargo_lock ))
@@ -69,7 +73,7 @@ def _table_get(doc: TOMLDocument, key: str) -> DictLike | None:
6973 v = doc [key ] # tomlkit returns Container/Table-like; typing is loose
7074 except NonExistentKey :
7175 return None
72- return cast (DictLike , v ) if hasattr (v , "get" ) else None
76+ return cast (" DictLike" , v ) if hasattr (v , "get" ) else None
7377
7478
7579def _root_version_table (doc : TOMLDocument ) -> DictLike :
@@ -78,26 +82,30 @@ def _root_version_table(doc: TOMLDocument) -> DictLike:
7882 if ws is not None :
7983 pkg = ws .get ("package" )
8084 if hasattr (pkg , "get" ):
81- return cast (DictLike , pkg )
85+ return cast (" DictLike" , pkg )
8286 pkg = _table_get (doc , "package" )
8387 if pkg is None :
84- raise NonExistentKey (' expected either [workspace.package] or [package]' )
88+ raise NonExistentKey (" expected either [workspace.package] or [package]" )
8589 return pkg
8690
8791
8892def _is_workspace_inherited_version (v : Any ) -> bool :
89- return hasattr (v , "get" ) and cast (DictLike , v ).get ("workspace" ) is True
93+ return hasattr (v , "get" ) and cast (" DictLike" , v ).get ("workspace" ) is True
9094
9195
92- def _iter_member_dirs (members : Iterable [str ], excludes : Iterable [str ]) -> Iterable [Path ]:
96+ def _iter_member_dirs (
97+ members : Iterable [str ], excludes : Iterable [str ]
98+ ) -> Iterable [Path ]:
9399 for pat in members :
94100 for p in glob .glob (pat , recursive = True ):
95101 if any (fnmatch .fnmatch (p , ex ) for ex in excludes ):
96102 continue
97103 yield Path (p )
98104
99105
100- def _workspace_inheriting_member_names (members : Iterable [str ], excludes : Iterable [str ]) -> set [str ]:
106+ def _workspace_inheriting_member_names (
107+ members : Iterable [str ], excludes : Iterable [str ]
108+ ) -> set [str ]:
101109 out : set [str ] = set ()
102110 for d in _iter_member_dirs (members , excludes ):
103111 cargo_file = d / "Cargo.toml"
@@ -106,7 +114,7 @@ def _workspace_inheriting_member_names(members: Iterable[str], excludes: Iterabl
106114 pkg = parse (cargo_file .read_text ()).get ("package" )
107115 if not hasattr (pkg , "get" ):
108116 continue
109- pkgd = cast (DictLike , pkg )
117+ pkgd = cast (" DictLike" , pkg )
110118 if _is_workspace_inherited_version (pkgd .get ("version" )):
111119 name = pkgd .get ("name" )
112120 if isinstance (name , str ):
0 commit comments