Skip to content

Commit bc60bc9

Browse files
committed
Added convenience function to extract SPDX elements by their Id
Signed-off-by: HarshvMahawar <[email protected]>
1 parent 91b05dc commit bc60bc9

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

src/spdx/document_utils.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,23 @@
99
# See the License for the specific language governing permissions and
1010
# limitations under the License.
1111
from typing import List
12-
12+
from typing import Union
1313
from spdx.model.document import Document
14+
from spdx.model.snippet import Snippet
15+
from spdx.model.package import Package
16+
from spdx.model.file import File
1417

1518

1619
def get_contained_spdx_element_ids(document: Document) -> List[str]:
1720
element_ids = [file.spdx_id for file in document.files]
1821
element_ids.extend([package.spdx_id for package in document.packages])
1922
element_ids.extend([snippet.spdx_id for snippet in document.snippets])
2023
return element_ids
24+
def get_element_from_spdx_id(document: Document, spdx_id: str) -> Union[Package, File, Snippet, None]:
25+
elements = [file_ for file_ in document.files]
26+
elements.extend([package_ for package_ in document.packages])
27+
elements.extend([snippet_ for snippet_ in document.snippets])
28+
for element in elements:
29+
if element.spdx_id == spdx_id:
30+
return element
31+

0 commit comments

Comments
 (0)