Skip to content

Commit d4acaef

Browse files
committed
Keep the platform details in the extra_data field
Signed-off-by: Keshav Priyadarshi <git@keshav.space>
1 parent 603d992 commit d4acaef

File tree

4 files changed

+102
-13
lines changed

4 files changed

+102
-13
lines changed

src/packagedcode/swift.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ def _parse(cls, swift_manifest, package_only=False):
6464
)
6565

6666
dependencies = get_dependencies(swift_manifest.get("dependencies"))
67+
platforms = swift_manifest.get("platforms", [])
6768

6869
package_data = dict(
6970
datasource_id=cls.datasource_id,
@@ -72,6 +73,7 @@ def _parse(cls, swift_manifest, package_only=False):
7273
namespace=None,
7374
name=swift_manifest.get("name"),
7475
dependencies=dependencies,
76+
extra_data={"platforms": platforms},
7577
)
7678

7779
return models.PackageData.from_data(package_data, package_only)
@@ -179,18 +181,15 @@ class SwiftPackageResolvedHandler(models.DatafileHandler):
179181
def parse(cls, location, package_only=False):
180182
with io.open(location, encoding="utf-8") as loc:
181183
package_resolved = json.load(loc)
182-
184+
183185
resolved_doc_version = package_resolved.get("version")
184186

185187
if resolved_doc_version in [2, 3]:
186188
yield from packages_from_resolved_v2_and_v3(package_resolved)
187-
189+
188190
if resolved_doc_version == 1:
189191
yield from packages_from_resolved_v1(package_resolved)
190192

191-
192-
193-
194193
@classmethod
195194
def assemble(
196195
cls, package_data, resource, codebase, package_adder=models.add_to_package
@@ -212,7 +211,8 @@ def assemble(
212211
codebase=codebase,
213212
package_adder=package_adder,
214213
)
215-
214+
215+
216216
def packages_from_resolved_v2_and_v3(package_resolved):
217217
pinned = package_resolved.get("pins", [])
218218

@@ -242,6 +242,7 @@ def packages_from_resolved_v2_and_v3(package_resolved):
242242
)
243243
yield models.PackageData.from_data(package_data, False)
244244

245+
245246
def packages_from_resolved_v1(package_resolved):
246247
object = package_resolved.get("object", {})
247248
pinned = object.get("pins", [])
@@ -273,7 +274,6 @@ def packages_from_resolved_v1(package_resolved):
273274
yield models.PackageData.from_data(package_data, False)
274275

275276

276-
277277
def get_dependencies(dependencies):
278278
dependent_packages = []
279279
for dependency in dependencies or []:
@@ -328,4 +328,3 @@ def get_namespace_and_name(url):
328328
canonical_name = hostname + path
329329

330330
return canonical_name.rsplit("/", 1)
331-

tests/packagedcode/data/swift/swift-maboxmaps-manifest-parse-expected.json

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,25 @@
3333
"notice_text": null,
3434
"source_packages": [],
3535
"file_references": [],
36-
"extra_data": {},
36+
"extra_data": {
37+
"platforms": [
38+
{
39+
"options": [],
40+
"platformName": "ios",
41+
"version": "12.0"
42+
},
43+
{
44+
"options": [],
45+
"platformName": "macos",
46+
"version": "10.15"
47+
},
48+
{
49+
"options": [],
50+
"platformName": "visionos",
51+
"version": "1.0"
52+
}
53+
]
54+
},
3755
"dependencies": [
3856
{
3957
"purl": "pkg:swift/github.com/mapbox/turf-swift",

tests/packagedcode/data/swift/swift-mapboxmaps-manifest-and-resolved-package-expected.json

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,25 @@
3333
"extracted_license_statement": null,
3434
"notice_text": null,
3535
"source_packages": [],
36-
"extra_data": {},
36+
"extra_data": {
37+
"platforms": [
38+
{
39+
"options": [],
40+
"platformName": "ios",
41+
"version": "12.0"
42+
},
43+
{
44+
"options": [],
45+
"platformName": "macos",
46+
"version": "10.15"
47+
},
48+
{
49+
"options": [],
50+
"platformName": "visionos",
51+
"version": "1.0"
52+
}
53+
]
54+
},
3755
"repository_homepage_url": null,
3856
"repository_download_url": null,
3957
"api_data_url": null,
@@ -268,7 +286,25 @@
268286
"notice_text": null,
269287
"source_packages": [],
270288
"file_references": [],
271-
"extra_data": {},
289+
"extra_data": {
290+
"platforms": [
291+
{
292+
"options": [],
293+
"platformName": "ios",
294+
"version": "12.0"
295+
},
296+
{
297+
"options": [],
298+
"platformName": "macos",
299+
"version": "10.15"
300+
},
301+
{
302+
"options": [],
303+
"platformName": "visionos",
304+
"version": "1.0"
305+
}
306+
]
307+
},
272308
"dependencies": [
273309
{
274310
"purl": "pkg:swift/github.com/mapbox/turf-swift",

tests/packagedcode/data/swift/swift-mapboxmaps-manifest-package-expected.json

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,25 @@
3333
"extracted_license_statement": null,
3434
"notice_text": null,
3535
"source_packages": [],
36-
"extra_data": {},
36+
"extra_data": {
37+
"platforms": [
38+
{
39+
"options": [],
40+
"platformName": "ios",
41+
"version": "12.0"
42+
},
43+
{
44+
"options": [],
45+
"platformName": "macos",
46+
"version": "10.15"
47+
},
48+
{
49+
"options": [],
50+
"platformName": "visionos",
51+
"version": "1.0"
52+
}
53+
]
54+
},
3755
"repository_homepage_url": null,
3856
"repository_download_url": null,
3957
"api_data_url": null,
@@ -130,7 +148,25 @@
130148
"notice_text": null,
131149
"source_packages": [],
132150
"file_references": [],
133-
"extra_data": {},
151+
"extra_data": {
152+
"platforms": [
153+
{
154+
"options": [],
155+
"platformName": "ios",
156+
"version": "12.0"
157+
},
158+
{
159+
"options": [],
160+
"platformName": "macos",
161+
"version": "10.15"
162+
},
163+
{
164+
"options": [],
165+
"platformName": "visionos",
166+
"version": "1.0"
167+
}
168+
]
169+
},
134170
"dependencies": [
135171
{
136172
"purl": "pkg:swift/github.com/mapbox/turf-swift",

0 commit comments

Comments
 (0)