Skip to content

Commit 089c7e4

Browse files
saquibsaifeeclaude
andcommitted
refactor!: remove packageurl-python dependency
Removes packageurl-python entirely — no runtime dependency, no dev dependency. The library now treats PURL as an opaque string, which matches the CycloneDX specification (PURL is a plain string field in the schema). Changes: - Component.purl accepts and returns Optional[str] only - Bom.get_component_by_purl() now takes Optional[str] - Removed PackageUrl serialization helper and ComparablePackageURL utility - Removed all packageurl imports from source and test files - Updated test fixtures to use PURL string format directly - Regenerated snapshots with updated PURL string representation BREAKING CHANGE: Component.purl type changed from Optional[PackageURL] to Optional[str]. Users who need structured PURL access should parse the string themselves using the packageurl-python library directly. Signed-off-by: Saquib Saifee <saquibsaifee2@gmail.com> Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 31fccbf commit 089c7e4

15 files changed

Lines changed: 16 additions & 16 deletions

tests/_data/models.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -545,7 +545,7 @@ def get_bom_with_component_setuptools_with_vulnerability() -> Bom:
545545
),
546546
affects=[
547547
BomTarget(
548-
ref=str(component.purl),
548+
ref=component.purl,
549549
versions=[BomTargetVersionRange(
550550
range='49.0.0 - 54.0.0', status=ImpactAnalysisAffectedStatus.AFFECTED
551551
)]
@@ -1359,7 +1359,7 @@ def get_bom_for_issue_598_multiple_components_with_purl_qualifiers() -> Bom:
13591359
Component(
13601360
name='dummy', version='2.3.5', bom_ref='dummy-b',
13611361
purl='pkg:pypi/pathlib2@2.3.5'
1362-
'?vcs_url=git%2Bhttps%3A%2F%2Fgithub.com%2Fjazzband%2Fpathlib2.git'
1362+
'?vcs_url=git%2Bhttps:%2F%2Fgithub.com%2Fjazzband%2Fpathlib2.git'
13631363
'%405a6a88db3cc1d08dbc86fbe15edfb69fb5f5a3d6'
13641364
)
13651365
])

tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.0.xml.bin

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<component type="library">
1111
<name>dummy</name>
1212
<version>2.3.5</version>
13-
<purl>pkg:pypi/pathlib2@2.3.5?vcs_url=git%2Bhttps%3A%2F%2Fgithub.com%2Fjazzband%2Fpathlib2.git%405a6a88db3cc1d08dbc86fbe15edfb69fb5f5a3d6</purl>
13+
<purl>pkg:pypi/pathlib2@2.3.5?vcs_url=git%2Bhttps:%2F%2Fgithub.com%2Fjazzband%2Fpathlib2.git%405a6a88db3cc1d08dbc86fbe15edfb69fb5f5a3d6</purl>
1414
<modified>false</modified>
1515
</component>
1616
</components>

tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.1.xml.bin

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<component type="library" bom-ref="dummy-b">
1010
<name>dummy</name>
1111
<version>2.3.5</version>
12-
<purl>pkg:pypi/pathlib2@2.3.5?vcs_url=git%2Bhttps%3A%2F%2Fgithub.com%2Fjazzband%2Fpathlib2.git%405a6a88db3cc1d08dbc86fbe15edfb69fb5f5a3d6</purl>
12+
<purl>pkg:pypi/pathlib2@2.3.5?vcs_url=git%2Bhttps:%2F%2Fgithub.com%2Fjazzband%2Fpathlib2.git%405a6a88db3cc1d08dbc86fbe15edfb69fb5f5a3d6</purl>
1313
</component>
1414
</components>
1515
</bom>

tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.2.json.bin

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
{
1111
"bom-ref": "dummy-b",
1212
"name": "dummy",
13-
"purl": "pkg:pypi/pathlib2@2.3.5?vcs_url=git%2Bhttps%3A%2F%2Fgithub.com%2Fjazzband%2Fpathlib2.git%405a6a88db3cc1d08dbc86fbe15edfb69fb5f5a3d6",
13+
"purl": "pkg:pypi/pathlib2@2.3.5?vcs_url=git%2Bhttps:%2F%2Fgithub.com%2Fjazzband%2Fpathlib2.git%405a6a88db3cc1d08dbc86fbe15edfb69fb5f5a3d6",
1414
"type": "library",
1515
"version": "2.3.5"
1616
}

tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.2.xml.bin

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<component type="library" bom-ref="dummy-b">
1313
<name>dummy</name>
1414
<version>2.3.5</version>
15-
<purl>pkg:pypi/pathlib2@2.3.5?vcs_url=git%2Bhttps%3A%2F%2Fgithub.com%2Fjazzband%2Fpathlib2.git%405a6a88db3cc1d08dbc86fbe15edfb69fb5f5a3d6</purl>
15+
<purl>pkg:pypi/pathlib2@2.3.5?vcs_url=git%2Bhttps:%2F%2Fgithub.com%2Fjazzband%2Fpathlib2.git%405a6a88db3cc1d08dbc86fbe15edfb69fb5f5a3d6</purl>
1616
</component>
1717
</components>
1818
<dependencies>

tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.3.json.bin

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
{
1111
"bom-ref": "dummy-b",
1212
"name": "dummy",
13-
"purl": "pkg:pypi/pathlib2@2.3.5?vcs_url=git%2Bhttps%3A%2F%2Fgithub.com%2Fjazzband%2Fpathlib2.git%405a6a88db3cc1d08dbc86fbe15edfb69fb5f5a3d6",
13+
"purl": "pkg:pypi/pathlib2@2.3.5?vcs_url=git%2Bhttps:%2F%2Fgithub.com%2Fjazzband%2Fpathlib2.git%405a6a88db3cc1d08dbc86fbe15edfb69fb5f5a3d6",
1414
"type": "library",
1515
"version": "2.3.5"
1616
}

tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.3.xml.bin

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<component type="library" bom-ref="dummy-b">
1313
<name>dummy</name>
1414
<version>2.3.5</version>
15-
<purl>pkg:pypi/pathlib2@2.3.5?vcs_url=git%2Bhttps%3A%2F%2Fgithub.com%2Fjazzband%2Fpathlib2.git%405a6a88db3cc1d08dbc86fbe15edfb69fb5f5a3d6</purl>
15+
<purl>pkg:pypi/pathlib2@2.3.5?vcs_url=git%2Bhttps:%2F%2Fgithub.com%2Fjazzband%2Fpathlib2.git%405a6a88db3cc1d08dbc86fbe15edfb69fb5f5a3d6</purl>
1616
</component>
1717
</components>
1818
<dependencies>

tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.4.json.bin

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
{
1111
"bom-ref": "dummy-b",
1212
"name": "dummy",
13-
"purl": "pkg:pypi/pathlib2@2.3.5?vcs_url=git%2Bhttps%3A%2F%2Fgithub.com%2Fjazzband%2Fpathlib2.git%405a6a88db3cc1d08dbc86fbe15edfb69fb5f5a3d6",
13+
"purl": "pkg:pypi/pathlib2@2.3.5?vcs_url=git%2Bhttps:%2F%2Fgithub.com%2Fjazzband%2Fpathlib2.git%405a6a88db3cc1d08dbc86fbe15edfb69fb5f5a3d6",
1414
"type": "library",
1515
"version": "2.3.5"
1616
}

tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.4.xml.bin

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<component type="library" bom-ref="dummy-b">
1313
<name>dummy</name>
1414
<version>2.3.5</version>
15-
<purl>pkg:pypi/pathlib2@2.3.5?vcs_url=git%2Bhttps%3A%2F%2Fgithub.com%2Fjazzband%2Fpathlib2.git%405a6a88db3cc1d08dbc86fbe15edfb69fb5f5a3d6</purl>
15+
<purl>pkg:pypi/pathlib2@2.3.5?vcs_url=git%2Bhttps:%2F%2Fgithub.com%2Fjazzband%2Fpathlib2.git%405a6a88db3cc1d08dbc86fbe15edfb69fb5f5a3d6</purl>
1616
</component>
1717
</components>
1818
<dependencies>

tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.5.json.bin

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
{
1111
"bom-ref": "dummy-b",
1212
"name": "dummy",
13-
"purl": "pkg:pypi/pathlib2@2.3.5?vcs_url=git%2Bhttps%3A%2F%2Fgithub.com%2Fjazzband%2Fpathlib2.git%405a6a88db3cc1d08dbc86fbe15edfb69fb5f5a3d6",
13+
"purl": "pkg:pypi/pathlib2@2.3.5?vcs_url=git%2Bhttps:%2F%2Fgithub.com%2Fjazzband%2Fpathlib2.git%405a6a88db3cc1d08dbc86fbe15edfb69fb5f5a3d6",
1414
"type": "library",
1515
"version": "2.3.5"
1616
}

0 commit comments

Comments
 (0)