8000 Added convenience function to extract SPDX elements by their Id · spdx/tools-python@ecca0da · GitHub
[go: up one dir, main page]

Skip to content

Commit ecca0da

Browse files
committed
Added convenience function to extract SPDX elements by their Id
Signed-off-by: HarshvMahawar <hv062727@gmail.com>
1 parent 91b05dc commit ecca0da

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

src/spdx/document_utils.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,27 @@
88
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
99
# See the License for the specific language governing permissions and
1010
# limitations under the License.
11-
from typing import List
1211

12+
13+
from typing import List
14+
from typing import Union
1315
from spdx.model.document import Document
16+
from spdx.model.snippet import Snippet
17+
from spdx.model.package import Package
18+
from spdx.model.file import File
1419

1520

1621
def get_contained_spdx_element_ids(document: Document) -> List[str]:
1722
element_ids = [file.spdx_id for file in document.files]
1823
element_ids.extend([package.spdx_id for package in document.packages])
1924
element_ids.extend([snippet.spdx_id for snippet in document.snippets])
2025
return element_ids
26+
27+
28+
def get_element_from_spdx_id(document: Document, spdx_id: str) -> Union[Package, File, Snippet, None]:
29+
elements = [file_ for file_ in document.files]
30+
elements.extend([package_ for package_ in document.packages])
31+
elements.extend([snippet_ for snippet_ in document.snippets])
32+
for element in elements:
33+
if element.spdx_id == spdx_id:
34+
return element

0 commit comments

Comments
 (0)
0