Skip to content

Commit 39ce894

Browse files
committed
Add copyright holder field to PackageData model aboutcode-org#3290
Signed-off-by: Keshav Priyadarshi <git@keshav.space>
1 parent 95a5f33 commit 39ce894

File tree

573 files changed

+382217
-428055
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

573 files changed

+382217
-428055
lines changed

src/packagedcode/models.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -711,8 +711,34 @@ class PackageData(IdentifiablePackageData):
711711
repr=True,
712712
)
713713

714+
holder= String(
715+
label='Holder',
716+
help='Holder for this package. Typically one per line.')
717+
714718
def __attrs_post_init__(self, *args, **kwargs):
715719
self.populate_license_fields()
720+
self.populate_holder_field()
721+
722+
def populate_holder_field(self):
723+
if self.copyright:
724+
from cluecode.copyrights import CopyrightDetector
725+
726+
numbered_lines = [
727+
(count, value) for count, value in enumerate(self.copyright.split("\n"), start=1)
728+
]
729+
detector = CopyrightDetector()
730+
holder_list = list(
731+
detector.detect(
732+
numbered_lines,
733+
include_copyrights=False,
734+
include_holders=True,
735+
include_authors=False,
736+
)
737+
)
738+
if holder_list:
739+
self.holder = "\n".join(
740+
[holder_detection.holder for holder_detection in holder_list]
741+
)
716742

717743
def populate_license_fields(self):
718744
"""

tests/licensedcode/data/licenses_reference_reporting/scan-matched-text-with-reference.expected.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
"repository_homepage_url": "https://www.npmjs.com/package/npm",
7070
"repository_download_url": "https://registry.npmjs.org/npm/-/npm-2.13.5.tgz",
7171
"api_data_url": "https://registry.npmjs.org/npm/2.13.5",
72+
"holder": null,
7273
"package_uid": "pkg:npm/npm@2.13.5?uuid=fixed-uid-done-for-testing-5642512d1758",
7374
"datafile_paths": [
7475
"scan/package.json"
@@ -522,6 +523,7 @@
522523
"repository_download_url": "https://registry.npmjs.org/npm/-/npm-2.13.5.tgz",
523524
"api_data_url": "https://registry.npmjs.org/npm/2.13.5",
524525
"datasource_id": "npm_package_json",
526+
"holder": null,
525527
"purl": "pkg:npm/npm@2.13.5"
526528
}
527529
],

tests/licensedcode/data/licenses_reference_reporting/scan-with-reference.expected.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
"repository_homepage_url": "https://www.npmjs.com/package/npm",
7070
"repository_download_url": "https://registry.npmjs.org/npm/-/npm-2.13.5.tgz",
7171
"api_data_url": "https://registry.npmjs.org/npm/2.13.5",
72+
"holder": null,
7273
"package_uid": "pkg:npm/npm@2.13.5?uuid=fixed-uid-done-for-testing-5642512d1758",
7374
"datafile_paths": [
7475
"scan/package.json"
@@ -516,6 +517,7 @@
516517
"repository_download_url": "https://registry.npmjs.org/npm/-/npm-2.13.5.tgz",
517518
"api_data_url": "https://registry.npmjs.org/npm/2.13.5",
518519
"datasource_id": "npm_package_json",
520+
"holder": null,
519521
"purl": "pkg:npm/npm@2.13.5"
520522
}
521523
],

tests/packagedcode/data/about/aboutfiles.expected.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
"repository_homepage_url": null,
6565
"repository_download_url": null,
6666
"api_data_url": null,
67+
"holder": "holger krekel",
6768
"package_uid": "pkg:about/apipkg@1.4?uuid=fixed-uid-done-for-testing-5642512d1758",
6869
"datafile_paths": [
6970
"aboutfiles/apipkg.ABOUT"
@@ -149,6 +150,7 @@
149150
"repository_homepage_url": null,
150151
"repository_download_url": null,
151152
"api_data_url": null,
153+
"holder": "ActiveState Software Inc.",
152154
"package_uid": "pkg:about/appdirs@1.4.3?uuid=fixed-uid-done-for-testing-5642512d1758",
153155
"datafile_paths": [
154156
"aboutfiles/appdirs.ABOUT"
@@ -258,6 +260,7 @@
258260
"repository_download_url": null,
259261
"api_data_url": null,
260262
"datasource_id": "about_file",
263+
"holder": "holger krekel",
261264
"purl": "pkg:about/apipkg@1.4"
262265
}
263266
],
@@ -347,6 +350,7 @@
347350
"repository_download_url": null,
348351
"api_data_url": null,
349352
"datasource_id": "about_file",
353+
"holder": "ActiveState Software Inc.",
350354
"purl": "pkg:about/appdirs@1.4.3"
351355
}
352356
],

tests/packagedcode/data/about/apipkg.ABOUT-expected

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@
7676
"repository_download_url": null,
7777
"api_data_url": null,
7878
"datasource_id": "about_file",
79+
"holder": "holger krekel",
7980
"purl": "pkg:about/apipkg@1.4"
8081
}
8182
]

tests/packagedcode/data/about/appdirs.ABOUT-expected

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@
7676
"repository_download_url": null,
7777
"api_data_url": null,
7878
"datasource_id": "about_file",
79+
"holder": "ActiveState Software Inc.",
7980
"purl": "pkg:about/appdirs@1.4.3"
8081
}
8182
]

tests/packagedcode/data/alpine/alpine-container-layer.tar.xz-get-installed-expected.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@
7979
"repository_homepage_url": null,
8080
"repository_download_url": null,
8181
"api_data_url": null,
82+
"holder": null,
8283
"package_uid": "pkg:alpine/alpine-baselayout-data@3.2.0-r22?arch=x86_64&uuid=fixed-uid-done-for-testing-5642512d1758",
8384
"datafile_paths": [
8485
"alpine-container-layer.tar.xz/lib/apk/db/installed"
@@ -287,6 +288,7 @@
287288
"repository_homepage_url": null,
288289
"repository_download_url": null,
289290
"api_data_url": null,
291+
"holder": null,
290292
"package_uid": "pkg:alpine/musl@1.2.3-r0?arch=x86_64&uuid=fixed-uid-done-for-testing-5642512d1758",
291293
"datafile_paths": [
292294
"alpine-container-layer.tar.xz/lib/apk/db/installed"
@@ -387,6 +389,7 @@
387389
"repository_homepage_url": null,
388390
"repository_download_url": null,
389391
"api_data_url": null,
392+
"holder": null,
390393
"package_uid": "pkg:alpine/busybox@1.35.0-r15?arch=x86_64&uuid=fixed-uid-done-for-testing-5642512d1758",
391394
"datafile_paths": [
392395
"alpine-container-layer.tar.xz/lib/apk/db/installed"
@@ -550,6 +553,7 @@
550553
"repository_homepage_url": null,
551554
"repository_download_url": null,
552555
"api_data_url": null,
556+
"holder": null,
553557
"package_uid": "pkg:alpine/alpine-baselayout@3.2.0-r22?arch=x86_64&uuid=fixed-uid-done-for-testing-5642512d1758",
554558
"datafile_paths": [
555559
"alpine-container-layer.tar.xz/lib/apk/db/installed"
@@ -902,6 +906,7 @@
902906
"repository_homepage_url": null,
903907
"repository_download_url": null,
904908
"api_data_url": null,
909+
"holder": null,
905910
"package_uid": "pkg:alpine/alpine-keys@2.4-r1?arch=x86_64&uuid=fixed-uid-done-for-testing-5642512d1758",
906911
"datafile_paths": [
907912
"alpine-container-layer.tar.xz/lib/apk/db/installed"
@@ -1191,6 +1196,7 @@
11911196
"repository_homepage_url": null,
11921197
"repository_download_url": null,
11931198
"api_data_url": null,
1199+
"holder": null,
11941200
"package_uid": "pkg:alpine/ca-certificates-bundle@20211220-r0?arch=x86_64&uuid=fixed-uid-done-for-testing-5642512d1758",
11951201
"datafile_paths": [
11961202
"alpine-container-layer.tar.xz/lib/apk/db/installed"
@@ -1300,6 +1306,7 @@
13001306
"repository_homepage_url": null,
13011307
"repository_download_url": null,
13021308
"api_data_url": null,
1309+
"holder": null,
13031310
"package_uid": "pkg:alpine/libcrypto1.1@1.1.1q-r0?arch=x86_64&uuid=fixed-uid-done-for-testing-5642512d1758",
13041311
"datafile_paths": [
13051312
"alpine-container-layer.tar.xz/lib/apk/db/installed"
@@ -1481,6 +1488,7 @@
14811488
"repository_homepage_url": null,
14821489
"repository_download_url": null,
14831490
"api_data_url": null,
1491+
"holder": null,
14841492
"package_uid": "pkg:alpine/libssl1.1@1.1.1q-r0?arch=x86_64&uuid=fixed-uid-done-for-testing-5642512d1758",
14851493
"datafile_paths": [
14861494
"alpine-container-layer.tar.xz/lib/apk/db/installed"
@@ -1569,6 +1577,7 @@
15691577
"repository_homepage_url": null,
15701578
"repository_download_url": null,
15711579
"api_data_url": null,
1580+
"holder": null,
15721581
"package_uid": "pkg:alpine/ssl_client@1.35.0-r15?arch=x86_64&uuid=fixed-uid-done-for-testing-5642512d1758",
15731582
"datafile_paths": [
15741583
"alpine-container-layer.tar.xz/lib/apk/db/installed"
@@ -1669,6 +1678,7 @@
16691678
"repository_homepage_url": null,
16701679
"repository_download_url": null,
16711680
"api_data_url": null,
1681+
"holder": null,
16721682
"package_uid": "pkg:alpine/zlib@1.2.12-r1?arch=x86_64&uuid=fixed-uid-done-for-testing-5642512d1758",
16731683
"datafile_paths": [
16741684
"alpine-container-layer.tar.xz/lib/apk/db/installed"
@@ -1757,6 +1767,7 @@
17571767
"repository_homepage_url": null,
17581768
"repository_download_url": null,
17591769
"api_data_url": null,
1770+
"holder": null,
17601771
"package_uid": "pkg:alpine/apk-tools@2.12.9-r3?arch=x86_64&uuid=fixed-uid-done-for-testing-5642512d1758",
17611772
"datafile_paths": [
17621773
"alpine-container-layer.tar.xz/lib/apk/db/installed"
@@ -1854,6 +1865,7 @@
18541865
"repository_homepage_url": null,
18551866
"repository_download_url": null,
18561867
"api_data_url": null,
1868+
"holder": null,
18571869
"package_uid": "pkg:alpine/scanelf@1.3.4-r0?arch=x86_64&uuid=fixed-uid-done-for-testing-5642512d1758",
18581870
"datafile_paths": [
18591871
"alpine-container-layer.tar.xz/lib/apk/db/installed"
@@ -1942,6 +1954,7 @@
19421954
"repository_homepage_url": null,
19431955
"repository_download_url": null,
19441956
"api_data_url": null,
1957+
"holder": null,
19451958
"package_uid": "pkg:alpine/musl-utils@1.2.3-r0?arch=x86_64&uuid=fixed-uid-done-for-testing-5642512d1758",
19461959
"datafile_paths": [
19471960
"alpine-container-layer.tar.xz/lib/apk/db/installed"
@@ -2066,6 +2079,7 @@
20662079
"repository_homepage_url": null,
20672080
"repository_download_url": null,
20682081
"api_data_url": null,
2082+
"holder": null,
20692083
"package_uid": "pkg:alpine/libc-utils@0.7.2-r3?arch=x86_64&uuid=fixed-uid-done-for-testing-5642512d1758",
20702084
"datafile_paths": [
20712085
"alpine-container-layer.tar.xz/lib/apk/db/installed"

0 commit comments

Comments
 (0)