Return a new PackageURL derived from the ``purl`` PackageURL object or string with the new version. For example:: >>> purl = PackageURL.from_string("pkg:generic/this@1.2.3") >>> evolved = PackageURL.from_string("pkg:generic/this@2.2.3") >>> update_purl_version(purl, version
(purl, version)
| 155 | |
| 156 | |
| 157 | def update_purl_version(purl, version): |
| 158 | """ |
| 159 | Return a new PackageURL derived from the ``purl`` PackageURL object or string |
| 160 | with the new version. |
| 161 | |
| 162 | For example:: |
| 163 | >>> purl = PackageURL.from_string("pkg:generic/this@1.2.3") |
| 164 | >>> evolved = PackageURL.from_string("pkg:generic/this@2.2.3") |
| 165 | >>> update_purl_version(purl, version="2.2.3") == evolved |
| 166 | True |
| 167 | """ |
| 168 | purl = normalize_purl(purl=purl) |
| 169 | if not version: |
| 170 | return purl |
| 171 | merged = purl.to_dict() |
| 172 | merged["version"] = version |
| 173 | return normalize_purl(PackageURL(**merged)) |
| 174 | |
| 175 | |
| 176 | def nearest_patched_package( |
no test coverage detected