Skip to content

Commit d7db78b

Browse files
committed
Address reviews
Signed-off-by: Keshav Priyadarshi <[email protected]>
1 parent 128d8bc commit d7db78b

File tree

2 files changed

+38
-16
lines changed

2 files changed

+38
-16
lines changed

src/fetchcode/package_versions.py

+32-13
Original file line numberDiff line numberDiff line change
@@ -363,17 +363,24 @@ def escape_path(path: str) -> str:
363363

364364

365365
def fetch_version_info(version_info: str, escaped_pkg: str) -> Optional[PackageVersion]:
366-
v = version_info.split()
367-
if not v:
368-
return None
366+
# Example version_info:
367+
# "v1.3.0 2019-04-19T01:47:04Z"
368+
# "v1.3.0"
369+
version_parts = version_info.split()
370+
if not version_parts:
371+
return
372+
373+
# Extract version and date if available
374+
version = version_parts[0]
375+
date = version_parts[1] if len(version_parts) > 1 else None
369376

370-
value = v[0]
371-
if len(v) > 1:
377+
if date:
372378
# get release date from the second part. see
373-
# https://github.com/golang/go/blob/master/src/cmd/go/internal/modfetch/proxy.go#latest()
374-
release_date = dateparser.parse(v[1])
379+
# https://github.com/golang/go/blob/ac02fdec7cd16ea8d3de1fc33def9cfabec5170d/src/cmd/go/internal/modfetch/proxy.go#L136-L147
380+
381+
release_date = dateparser.parse(date)
375382
else:
376-
escaped_ver = escape_path(value)
383+
escaped_ver = escape_path(version)
377384
response = get_response(
378385
url=f"https://proxy.golang.org/{escaped_pkg}/@v/{escaped_ver}.info",
379386
content_type="json",
@@ -386,7 +393,7 @@ def fetch_version_info(version_info: str, escaped_pkg: str) -> Optional[PackageV
386393
)
387394
release_date = dateparser.parse(response.get("Time", "")) if response else None
388395

389-
return PackageVersion(value=value, release_date=release_date)
396+
return PackageVersion(value=version, release_date=release_date)
390397

391398

392399
def composer_extract_versions(resp: dict, pkg: str) -> Iterable[PackageVersion]:
@@ -489,9 +496,10 @@ def get_pypi_latest_date(downloads):
489496

490497

491498
def get_response(url, content_type="json", headers=None):
492-
"""Fetch ``url`` and return its content as ``content_type`` which is one of binary, text or json."""
493-
assert content_type in ("binary", "text", "json", "yaml")
494-
499+
"""
500+
Fetch ``url`` and return its content as ``content_type`` which is
501+
one of binary, text, yaml or json.
502+
"""
495503
try:
496504
resp = requests.get(url=url, headers=headers)
497505
except:
@@ -513,7 +521,18 @@ def get_response(url, content_type="json", headers=None):
513521

514522

515523
def remove_debian_default_epoch(version):
516-
"""Remove the default epoch from a Debian ``version`` string."""
524+
"""
525+
Remove the default epoch from a Debian ``version`` string.
526+
527+
For Example::
528+
>>> remove_debian_default_epoch("0:1.2.3-4")
529+
'1.2.3-4'
530+
>>> remove_debian_default_epoch("1.2.3-4")
531+
'1.2.3-4'
532+
>>> remove_debian_default_epoch(None)
533+
>>> remove_debian_default_epoch("")
534+
''
535+
"""
517536
return version and version.replace("0:", "")
518537

519538

tests/data/package_versions/regenerate_mock_data.py

+6-3
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
data_location = Path(__file__).parent
2727

28-
test_sources = [
28+
TEST_SOURCES_INFO = [
2929
{
3030
"ecosystem": "cargo",
3131
"purl": "pkg:cargo/yprox",
@@ -106,8 +106,11 @@
106106
]
107107

108108

109-
def fetch_mock_data():
110-
for source in test_sources:
109+
def fetch_mock_data(sources_info=TEST_SOURCES_INFO):
110+
"""
111+
Fetch mock data for ecosystems provided in `sources_info`.
112+
"""
113+
for source in sources_info:
111114
content_type = source.get("content_type", "json")
112115
file_name = source["file-name"]
113116
response = get_response(

0 commit comments

Comments
 (0)