diff --git a/swh/lister/conda/lister.py b/swh/lister/conda/lister.py --- a/swh/lister/conda/lister.py +++ b/swh/lister/conda/lister.py @@ -61,7 +61,9 @@ url=self.url, channel=self.channel, arch=arch ) response = self.http_request(url=repodata_url) - packages = json.loads(bz2.decompress(response.content))["packages"] + packages: Dict[str, Any] = json.loads(bz2.decompress(response.content))[ + "packages" + ] yield (arch, packages) def get_origins_from_page(self, page: CondaListerPage) -> Iterator[ListedOrigin]: @@ -70,7 +72,11 @@ arch, packages = page for filename, package_metadata in packages.items(): - artifact = { + version_key = ( + f"{arch}/{package_metadata['version']}-{package_metadata['build']}" + ) + + artifact: Dict[str, Any] = { "filename": filename, "url": self.ARCHIVE_URL_PATTERN.format( url=self.url, @@ -78,7 +84,7 @@ filename=filename, arch=arch, ), - "version": package_metadata["version"], + "version": version_key, "checksums": {}, } @@ -86,9 +92,6 @@ if checksum in package_metadata: artifact["checksums"][checksum] = package_metadata[checksum] - version_key = ( - f"{arch}/{package_metadata['version']}-{package_metadata['build']}" - ) self.packages[package_metadata["name"]][version_key] = artifact package_date = None @@ -113,6 +116,8 @@ ), last_update=last_update, extra_loader_arguments={ - "artifacts": self.packages[package_metadata["name"]], + "artifacts": [ + v for k, v in self.packages[package_metadata["name"]].items() + ], }, ) diff --git a/swh/lister/conda/tests/test_lister.py b/swh/lister/conda/tests/test_lister.py --- a/swh/lister/conda/tests/test_lister.py +++ b/swh/lister/conda/tests/test_lister.py @@ -35,43 +35,43 @@ expected_origins = [ { "url": "https://anaconda.org/conda-forge/21cmfast", - "artifacts": { - "linux-64/3.0.2-py36h1af98f8_1": { + "artifacts": [ + { "url": "https://conda.anaconda.org/conda-forge/linux-64/21cmfast-3.0.2-py36h1af98f8_1.tar.bz2", # noqa: B950 "date": "2020-11-11T16:04:49.658000+00:00", - "version": "3.0.2", + "version": "linux-64/3.0.2-py36h1af98f8_1", "filename": "21cmfast-3.0.2-py36h1af98f8_1.tar.bz2", "checksums": { "md5": "d65ab674acf3b7294ebacaec05fc5b54", "sha256": "1154fceeb5c4ee9bb97d245713ac21eb1910237c724d2b7103747215663273c2", # noqa: B950 }, } - }, + ], }, { "url": "https://anaconda.org/conda-forge/lifetimes", - "artifacts": { - "linux-64/0.11.1-py36h9f0ad1d_1": { + "artifacts": [ + { "url": "https://conda.anaconda.org/conda-forge/linux-64/lifetimes-0.11.1-py36h9f0ad1d_1.tar.bz2", # noqa: B950 "date": "2020-07-06T12:19:36.425000+00:00", - "version": "0.11.1", + "version": "linux-64/0.11.1-py36h9f0ad1d_1", "filename": "lifetimes-0.11.1-py36h9f0ad1d_1.tar.bz2", "checksums": { "md5": "faa398f7ba0d60ce44aa6eeded490cee", "sha256": "f82a352dfae8abceeeaa538b220fd9c5e4aa4e59092a6a6cea70b9ec0581ea03", # noqa: B950 }, }, - "linux-64/0.11.1-py36hc560c46_1": { + { "url": "https://conda.anaconda.org/conda-forge/linux-64/lifetimes-0.11.1-py36hc560c46_1.tar.bz2", # noqa: B950 "date": "2020-07-06T12:19:37.032000+00:00", - "version": "0.11.1", + "version": "linux-64/0.11.1-py36hc560c46_1", "filename": "lifetimes-0.11.1-py36hc560c46_1.tar.bz2", "checksums": { "md5": "c53a689a4c5948e84211bdfc23e3fe68", "sha256": "76146c2ebd6e3b65928bde53a2585287759d77beba785c0eeb889ee565c0035d", # noqa: B950 }, }, - }, + ], }, ]