def to_dict(cls, doc): """ Represents a SPDX Document (spdx.document.Document) as nested Python types """ creators = sorted(doc.creation_info.creators, key=lambda c: c.name) return OrderedDict([ ('id', doc.spdx_id), ('specVersion', cls.version_to_dict(doc.version)), ('namespace', doc.namespace), ('name', doc.name), ('comment', doc.comment), ('dataLicense', cls.license_to_dict(doc.data_license)), ('licenseListVersion', cls.version_to_dict(doc.creation_info.license_list_version)), ('creators', [cls.entity_to_dict(creator) for creator in creators]), ('created', utils.datetime_iso_format(doc.creation_info.created)), ('creatorComment', doc.creation_info.comment), ('package', cls.package_to_dict(doc.package)), ('externalDocumentRefs', cls.ext_document_references_to_list( sorted(doc.ext_document_references))), ('extractedLicenses', cls.extracted_licenses_to_list(sorted(doc.extracted_licenses))), ('annotations', cls.annotations_to_list(sorted(doc.annotations))), ('reviews', cls.reviews_to_list(sorted(doc.reviews))), ('snippets', cls.snippets_to_list(sorted(doc.snippet))), ])
def reviews_to_list(cls, reviews): """ Represents a list of spdx.review.Review as a Python list of dictionaries """ reviews_list = [] for review in reviews: review_dict = { 'comment': review.comment, 'reviewer': cls.entity_to_dict(review.reviewer), 'date': utils.datetime_iso_format(review.review_date) } reviews_list.append(review_dict) return reviews_list
def reviews_to_list(cls, reviews): """ Represents a list of spdx.review.Review as a Python list of dictionaries """ reviews_list = [] for review in reviews: review_dict = OrderedDict([ ('comment', review.comment), ('reviewer', cls.entity_to_dict(review.reviewer)), ('date', utils.datetime_iso_format(review.review_date)) ]) reviews_list.append(review_dict) return reviews_list
def annotations_to_list(cls, annotations): """ Represents a list of spdx.annotation.Annotation as a Python list of dictionaries """ annotations_list = [] for annotation in annotations: annotation_dict = { 'id': annotation.spdx_id, 'comment': annotation.comment, 'type': annotation.annotation_type, 'annotator': cls.entity_to_dict(annotation.annotator), 'date': utils.datetime_iso_format(annotation.annotation_date) } annotations_list.append(annotation_dict) return annotations_list
def annotations_to_list(cls, annotations): """ Represents a list of spdx.annotation.Annotation as a Python list of dictionaries """ annotations_list = [] for annotation in annotations: annotation_dict = OrderedDict([ ('id', annotation.spdx_id), ('comment', annotation.comment), ('type', annotation.annotation_type), ('annotator', cls.entity_to_dict(annotation.annotator)), ('date', utils.datetime_iso_format(annotation.annotation_date)), ]) annotations_list.append(annotation_dict) return annotations_list
def to_dict(cls, doc): """ Represents a SPDX Document (spdx.document.Document) as nested Python types """ creators = sorted(doc.creation_info.creators, key=lambda c: c.name) return { 'id': doc.spdx_id, 'specVersion': cls.version_to_dict(doc.version), 'namespace': doc.namespace, 'name': doc.name, 'comment': doc.comment, 'dataLicense': cls.license_to_dict(doc.data_license), 'licenseListVersion': cls.version_to_dict(doc.creation_info.license_list_version), 'creators': [cls.entity_to_dict(creator) for creator in creators], 'created': utils.datetime_iso_format(doc.creation_info.created), 'creatorComment': doc.creation_info.comment, 'package': cls.package_to_dict(doc.package), 'externalDocumentRefs': cls.ext_document_references_to_list( sorted(doc.ext_document_references)), 'extractedLicenses': cls.extracted_licenses_to_list(sorted(doc.extracted_licenses)), 'annotations': cls.annotations_to_list(sorted(doc.annotations)), 'reviews': cls.reviews_to_list(sorted(doc.reviews)) }
def annotation_date_iso_format(self): return datetime_iso_format(self.annotation_date)
def review_date_iso_format(self): return datetime_iso_format(self.review_date)
def created_iso_format(self): return utils.datetime_iso_format(self.created)