Skip to content

Commit 442434b

Browse files
authored
Simplify the Maven implementation in purl2url.py
1 parent 69e6387 commit 442434b

File tree

1 file changed

+13
-23
lines changed

1 file changed

+13
-23
lines changed

src/packageurl/contrib/purl2url.py

Lines changed: 13 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@
2828
from packageurl.contrib.route import NoRouteAvailable
2929
from packageurl.contrib.route import Router
3030

31-
default_maven_repository = "https://repo.maven.apache.org/maven2"
31+
DEFAULT_MAVEN_REPOSITORY = "https://repo.maven.apache.org/maven2"
32+
3233

3334
def get_repo_download_url_by_package_type(
3435
type, namespace, name, version, archive_extension="tar.gz"
@@ -324,15 +325,13 @@ def build_maven_repo_url(purl):
324325
namespace = purl_data.namespace
325326
name = purl_data.name
326327
version = purl_data.version
328+
qualifiers = purl_data.qualifiers
327329

328-
base_url = default_maven_repository
329-
330-
if purl_data.qualifiers and "repository_url" in purl_data.qualifiers:
331-
base_url = purl_data.qualifiers["repository_url"]
330+
base_url = qualifiers.get("repository_url", DEFAULT_MAVEN_REPOSITORY)
332331

333332
if namespace and name and version:
334-
maven_namespace = namespace.replace(".", "/")
335-
return f"{base_url}/{maven_namespace}/{name}/{version}"
333+
namespace = namespace.replace(".", "/")
334+
return f"{base_url}/{namespace}/{name}/{version}"
336335

337336

338337
# Download URLs:
@@ -396,25 +395,16 @@ def build_maven_download_url(purl):
396395
namespace = purl_data.namespace
397396
name = purl_data.name
398397
version = purl_data.version
398+
qualifiers = purl_data.qualifiers
399399

400-
base_url = default_maven_repository
401-
402-
if purl_data.qualifiers and "repository_url" in purl_data.qualifiers:
403-
base_url = purl_data.qualifiers["repository_url"]
404-
405-
maven_type = "jar" # default to jar
406-
if purl_data.qualifiers and "type" in purl_data.qualifiers:
407-
maven_type = purl_data.qualifiers["type"]
408-
409-
classifier = None
410-
if purl_data.qualifiers and "classifier" in purl_data.qualifiers:
411-
classifier = purl_data.qualifiers["classifier"]
400+
base_url = qualifiers.get("repository_url", DEFAULT_MAVEN_REPOSITORY)
401+
maven_type = qualifiers.get("type", "jar") # default to "jar"
402+
classifier = qualifiers.get("classifier")
412403

413404
if namespace and name and version:
414-
maven_namespace = namespace.replace(".", "/")
415-
if classifier:
416-
return f"{base_url}/{maven_namespace}/{name}/{version}/{name}-{version}-{classifier}.{maven_type}"
417-
return f"{base_url}/{maven_namespace}/{name}/{version}/{name}-{version}.{maven_type}"
405+
namespace = namespace.replace(".", "/")
406+
classifier = f"-{classifier}" if classifier else ""
407+
return f"{base_url}/{namespace}/{name}/{version}/{name}-{version}{classifier}.{maven_type}"
418408

419409

420410
@download_router.route("pkg:hackage/.*")

0 commit comments

Comments
 (0)