Check if feature depends on target_name (directly or transitively).
(feature, target_name, all_features_map, visited=None)
| 217 | return deps |
| 218 | |
| 219 | def has_dependency(feature, target_name, all_features_map, visited=None): |
| 220 | """Check if feature depends on target_name (directly or transitively).""" |
| 221 | if visited is None: |
| 222 | visited = set() |
| 223 | |
| 224 | feature_name = feature.get('name') |
| 225 | if feature_name in visited: |
| 226 | return False |
| 227 | visited.add(feature_name) |
| 228 | |
| 229 | deps = get_dependencies(feature) |
| 230 | if target_name in deps: |
| 231 | return True |
| 232 | |
| 233 | # Check transitive dependencies |
| 234 | for dep_name in deps: |
| 235 | if dep_name in all_features_map: |
| 236 | if has_dependency(all_features_map[dep_name], target_name, all_features_map, visited): |
| 237 | return True |
| 238 | return False |
| 239 | |
| 240 | # Create a map of all features for dependency lookups |
| 241 | all_features_map = {f.get('name'): f for f in public_features + internal_features} |
no test coverage detected