Yield DependentPackage found in a NuGet ``nuspec`` object.
(nuspec)
| 20 | |
| 21 | |
| 22 | def get_dependencies(nuspec): |
| 23 | """ |
| 24 | Yield DependentPackage found in a NuGet ``nuspec`` object. |
| 25 | """ |
| 26 | # This is either a list of dependency or a list of group/dependency |
| 27 | # or a single dep or a single group mapping |
| 28 | |
| 29 | dependencies = nuspec.get('dependencies') or [] |
| 30 | if isinstance(dependencies, dict): |
| 31 | # wrap the mapping in a list if we have more than one dependencies |
| 32 | dependencies = [dependencies] |
| 33 | |
| 34 | for depends in dependencies: |
| 35 | groups = depends.get('group') or [] |
| 36 | if groups: |
| 37 | if isinstance(groups, dict): |
| 38 | # wrap the mapping in a list |
| 39 | groups = [groups] |
| 40 | |
| 41 | for group in groups: |
| 42 | extra_data = dict(framework=group['@targetFramework']) |
| 43 | deps = group.get('dependency') or [] |
| 44 | yield from _get_dep_packs(deps, extra_data) |
| 45 | else: |
| 46 | # {'dependency': {'@id': 'jQuery', '@version': '1.9.1'}} |
| 47 | deps = depends.get('dependency') or [] |
| 48 | yield from _get_dep_packs(deps, extra_data={}) |
| 49 | |
| 50 | |
| 51 | def _get_dep_packs(deps, extra_data): |
no test coverage detected