Return a PackageURL from a ``mapping`` or None if essential type and name fields are missing.
(mapping)
| 1576 | |
| 1577 | |
| 1578 | def build_purl(mapping): |
| 1579 | """ |
| 1580 | Return a PackageURL from a ``mapping`` or None if essential type and name |
| 1581 | fields are missing. |
| 1582 | """ |
| 1583 | ptype = mapping.get('type') |
| 1584 | name = mapping.get('name') |
| 1585 | if not ptype or not name: |
| 1586 | return |
| 1587 | |
| 1588 | namespace = mapping.get('namespace') |
| 1589 | version = mapping.get('version') |
| 1590 | qualifiers = mapping.get('qualifiers') or {} |
| 1591 | subpath = mapping.get('subpath') |
| 1592 | return PackageURL( |
| 1593 | type=ptype, |
| 1594 | namespace=namespace, |
| 1595 | name=name, |
| 1596 | version=version, |
| 1597 | qualifiers=qualifiers, |
| 1598 | subpath=subpath, |
| 1599 | ) |
| 1600 | |
| 1601 | |
| 1602 | @attr.attributes(slots=True) |