def add_file_dependencies_helper(self, doc_file): """ Handle dependencies for a single file. - doc_file - instance of spdx.file.File. """ subj_triples = list( self.graph.triples( (None, self.spdx_namespace.fileName, Literal(doc_file.name)) ) ) if len(subj_triples) != 1: raise InvalidDocumentError( "Could not find dependency subject {0}".format(doc_file.name) ) subject_node = subj_triples[0][0] for dependency in doc_file.dependencies: dep_triples = list( self.graph.triples( (None, self.spdx_namespace.fileName, Literal(dependency)) ) ) if len(dep_triples) == 1: dep_node = dep_triples[0][0] dep_triple = ( subject_node, self.spdx_namespace.fileDependency, dep_node, ) self.graph.add(dep_triple) else: print( "Warning could not resolve file dependency {0} -> {1}".format( doc_file.name, dependency ) )
def handle_package_has_file_helper(self, pkg_file): """Returns node representing pkg_file pkg_file should be instance of spdx.file. """ nodes = list(self.graph.triples((None, self.spdx_namespace.fileName, Literal(pkg_file.name)))) if len(nodes) == 1: return nodes[0][0] else: raise InvalidDocumentError('handle_package_has_file_helper could not' + ' find file node for file: {0}'.format(pkg_file.name))
def write_document(document, out, validate=True): if validate: messages = [] messages = document.validate(messages) if messages: raise InvalidDocumentError(messages) writer = Writer(document) document_object = writer.create_document() json.dump(document_object, out, indent=4)
def write_document(document, out): """Writes a document. document - spdx.document instance. out - file like object that will be written to. raises InvalidDocumentError if document.validate returns False. """ if not document.validate([]): raise InvalidDocumentError() writer = Writer(document, out) writer.write()
def write_document(document, out, validate=True): if validate: messages = [] messages = document.validate(messages) if messages: raise InvalidDocumentError(messages) writer = Writer(document) document_object = {"SpdxDocument": writer.create_document()} xmltodict.unparse(document_object, out, encoding="utf-8", pretty=True)
def write_document(document, out, validate=True): if validate: messages = [] messages = document.validate(messages) if messages: raise InvalidDocumentError(messages) writer = Writer(document) document_object = writer.create_document() yaml.safe_dump(document_object, out, indent=2, explicit_start=True)
def create_license_helper(self, lic): """Handles single(no conjunction/disjunction) licenses. Returns the created node. """ if isinstance(lic, document.ExtractedLicense): return self.create_extracted_license(lic) elif lic.identifier in config.LICENSE_MAP: return URIRef(lic.url) else: matches = [l for l in self.document.extracted_licenses if l.identifier == lic.identifier] if len(matches) != 0: return self.create_extracted_license(matches[0]) else: raise InvalidDocumentError('Missing extracted license: {0}'.format(lic.identifier))
def write_document(document, out, validate=True): """ Write an SPDX RDF document. - document - spdx.document instance. - out - file like object that will be written to. Optionally `validate` the document before writing and raise InvalidDocumentError if document.validate returns False. """ if validate: messages = [] messages = document.validate(messages) if messages: raise InvalidDocumentError(messages) writer = Writer(document, out) writer.write()