@@ -89,12 +89,12 @@ def __repr__(self):
89
89
90
90
91
91
if sys .version_info >= (3 , 8 , 0 ):
92
- from importlib .metadata import version
92
+ from importlib .metadata import version as meta_version
93
93
else :
94
- from importlib_metadata import version
94
+ from importlib_metadata import version as meta_version
95
95
96
96
try :
97
- ThisTool = Tool (vendor = 'CycloneDX' , name = 'cyclonedx-python-lib' , version = version ('cyclonedx-python-lib' ))
97
+ ThisTool = Tool (vendor = 'CycloneDX' , name = 'cyclonedx-python-lib' , version = meta_version ('cyclonedx-python-lib' ))
98
98
except Exception :
99
99
ThisTool = Tool (vendor = 'CycloneDX' , name = 'cyclonedx-python-lib' , version = 'UNKNOWN' )
100
100
@@ -112,10 +112,22 @@ class BomMetaData:
112
112
113
113
def __init__ (self , tools : List [Tool ] = []):
114
114
self ._timestamp = datetime .datetime .now (tz = datetime .timezone .utc )
115
+ self ._tools .clear ()
115
116
if len (tools ) == 0 :
116
117
tools .append (ThisTool )
117
118
self ._tools = tools
118
119
120
+ def add_tool (self , tool : Tool ):
121
+ """
122
+ Add a Tool definition to this Bom Metadata. The `cyclonedx-python-lib` is automatically added - you do not need
123
+ to add this yourself.
124
+
125
+ Args:
126
+ tool:
127
+ Instance of `Tool` that represents the tool you are using.
128
+ """
129
+ self ._tools .append (tool )
130
+
119
131
def get_timestamp (self ) -> datetime .datetime :
120
132
"""
121
133
The date and time (in UTC) when this BomMetaData was created.
@@ -173,7 +185,7 @@ def __init__(self):
173
185
New, empty `cyclonedx.model.bom.Bom` instance.
174
186
"""
175
187
self ._uuid = uuid4 ()
176
- self ._metadata = BomMetaData ()
188
+ self ._metadata = BomMetaData (tools = [] )
177
189
self ._components .clear ()
178
190
179
191
def add_component (self , component : Component ):
0 commit comments