@@ -92,15 +92,15 @@ def _extract_from_line(line: str) -> Optional[Package]:
9292 return None
9393 return Package (name = split_line [0 ], version = split_line [1 ])
9494
95- def _extract_from_poetry_show (self , output_text : str ) -> list [ Package ]:
96- return [
97- package
95+ def _extract_from_poetry_show (self , output_text : str ) -> dict [ str , Package ]:
96+ return {
97+ package . name : package
9898 for line in output_text .splitlines ()
9999 if (package := self ._extract_from_line (line ))
100- ]
100+ }
101101
102102 @property
103- def direct_dependencies (self ) -> dict [str , list [ Package ]]:
103+ def direct_dependencies (self ) -> dict [str , dict [ str , Package ]]:
104104 dependencies = {}
105105 for group in self .groups :
106106 command = (
@@ -122,7 +122,7 @@ def direct_dependencies(self) -> dict[str, list[Package]]:
122122 return dependencies
123123
124124 @property
125- def all_dependencies (self ) -> dict [str , list [ Package ]]:
125+ def all_dependencies (self ) -> dict [str , dict [ str , Package ]]:
126126 command = ("poetry" , "show" , "--no-truncate" )
127127 output = subprocess .run (
128128 command ,
@@ -133,16 +133,17 @@ def all_dependencies(self) -> dict[str, list[Package]]:
133133 )
134134
135135 direct_dependencies = self .direct_dependencies .copy ()
136- transitive_dependencies = []
136+
137+ transitive_dependencies = {}
137138 names_direct_dependencies = {
138- dep . name
139- for group_list in direct_dependencies . values ()
140- for dep in group_list
139+ package_name
140+ for group_list in direct_dependencies
141+ for package_name in group_list
141142 }
142143 for line in output .stdout .splitlines ():
143144 dep = self ._extract_from_line (line = line )
144145 if dep and dep .name not in names_direct_dependencies :
145- transitive_dependencies . append ( dep )
146+ transitive_dependencies [ dep . name ] = dep
146147
147148 return direct_dependencies | {TRANSITIVE_GROUP .name : transitive_dependencies }
148149
0 commit comments