diff --git a/src/packagedcode/models.py b/src/packagedcode/models.py index 0c4ffb9e56..a00fcc2b8b 100644 --- a/src/packagedcode/models.py +++ b/src/packagedcode/models.py @@ -1617,7 +1617,11 @@ class Package(PackageData): label='List of datafile paths', help='List of datafile paths used to create this package.' ) + documentation_url = String( + label='Documentation URL', + help='URL that documents this package.' + ) datasource_ids = List( item_type=str, label='datasource ids', @@ -1638,10 +1642,11 @@ def to_package_data(self): mapping.pop('package_uid', None) mapping.pop('datafile_paths', None) mapping.pop('datasource_ids', None) + mapping.pop('documentation_url', None) return PackageData.from_dict(mapping) @classmethod - def from_package_data(cls, package_data, datafile_path=None, package_only=False): + def from_package_data(cls, package_data, datafile_path=None, package_only=False , documentation_url=None): """ Return a Package from a ``package_data`` PackageData object or mapping. Or None. @@ -1665,7 +1670,8 @@ def from_package_data(cls, package_data, datafile_path=None, package_only=False) for license_match in detection['matches']: if not license_match['from_file']: license_match['from_file'] = datafile_path - + if documentation_url: + package_data_mapping['documentation_url'] = documentation_url package = cls.from_dict(package_data_mapping) if not package.package_uid: