Skip to content

Commit e00af17

Browse files
authored
rename ToolsRepository -> ToolRepository (#687)
Item class of repository is to be called in singular(`Tool`). Signed-off-by: Jan Kowalleck <[email protected]>
1 parent 48b5bc3 commit e00af17

File tree

7 files changed

+45
-45
lines changed

7 files changed

+45
-45
lines changed

cyclonedx/model/bom.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
from .dependency import Dependable, Dependency
4545
from .license import License, LicenseExpression, LicenseRepository
4646
from .service import Service
47-
from .tool import Tool, ToolsRepository, _ToolsRepositoryHelper
47+
from .tool import Tool, ToolRepository, _ToolRepositoryHelper
4848
from .vulnerability import Vulnerability
4949

5050
if TYPE_CHECKING: # pragma: no cover
@@ -62,7 +62,7 @@ class BomMetaData:
6262

6363
def __init__(
6464
self, *,
65-
tools: Optional[Union[Iterable[Tool], ToolsRepository]] = None,
65+
tools: Optional[Union[Iterable[Tool], ToolRepository]] = None,
6666
authors: Optional[Iterable[OrganizationalContact]] = None,
6767
component: Optional[Component] = None,
6868
supplier: Optional[OrganizationalEntity] = None,
@@ -117,22 +117,22 @@ def timestamp(self, timestamp: datetime) -> None:
117117
# ... # TODO since CDX1.5
118118

119119
@property
120-
@serializable.type_mapping(_ToolsRepositoryHelper)
120+
@serializable.type_mapping(_ToolRepositoryHelper)
121121
@serializable.xml_sequence(3)
122-
def tools(self) -> ToolsRepository:
122+
def tools(self) -> ToolRepository:
123123
"""
124124
Tools used to create this BOM.
125125
126126
Returns:
127-
`ToolsRepository` objects.
127+
:class:`ToolRepository` object.
128128
"""
129129
return self._tools
130130

131131
@tools.setter
132-
def tools(self, tools: Union[Iterable[Tool], ToolsRepository]) -> None:
132+
def tools(self, tools: Union[Iterable[Tool], ToolRepository]) -> None:
133133
self._tools = tools \
134-
if isinstance(tools, ToolsRepository) \
135-
else ToolsRepository(tools=tools)
134+
if isinstance(tools, ToolRepository) \
135+
else ToolRepository(tools=tools)
136136

137137
@property
138138
@serializable.xml_array(serializable.XmlArraySerializationType.NESTED, 'author')

cyclonedx/model/tool.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ def from_service(cls: Type['Tool'], service: 'Service') -> 'Tool':
188188
)
189189

190190

191-
class ToolsRepository:
191+
class ToolRepository:
192192
"""
193193
The repository of tool formats
194194
"""
@@ -251,7 +251,7 @@ def __bool__(self) -> bool:
251251
or len(self._services) > 0
252252

253253
def __eq__(self, other: object) -> bool:
254-
if not isinstance(other, ToolsRepository):
254+
if not isinstance(other, ToolRepository):
255255
return False
256256

257257
return self._tools == other._tools \
@@ -262,10 +262,10 @@ def __hash__(self) -> int:
262262
return hash((tuple(self._tools), tuple(self._components), tuple(self._services)))
263263

264264

265-
class _ToolsRepositoryHelper(BaseHelper):
265+
class _ToolRepositoryHelper(BaseHelper):
266266

267267
@staticmethod
268-
def __all_as_tools(o: ToolsRepository) -> Tuple[Tool, ...]:
268+
def __all_as_tools(o: ToolRepository) -> Tuple[Tool, ...]:
269269
return (
270270
*o.tools,
271271
*map(Tool.from_component, o.components),
@@ -280,7 +280,7 @@ def __supports_components_and_services(view: Any) -> bool:
280280
return False
281281

282282
@classmethod
283-
def json_normalize(cls, o: ToolsRepository, *,
283+
def json_normalize(cls, o: ToolRepository, *,
284284
view: Optional[Type['ViewType']],
285285
**__: Any) -> Any:
286286
if len(o.tools) > 0 or not cls.__supports_components_and_services(view):
@@ -294,7 +294,7 @@ def json_normalize(cls, o: ToolsRepository, *,
294294

295295
@classmethod
296296
def json_denormalize(cls, o: Union[List[Dict[str, Any]], Dict[str, Any]],
297-
**__: Any) -> ToolsRepository:
297+
**__: Any) -> ToolRepository:
298298
tools = None
299299
components = None
300300
services = None
@@ -305,10 +305,10 @@ def json_denormalize(cls, o: Union[List[Dict[str, Any]], Dict[str, Any]],
305305
s), o.get('services', ()))
306306
elif isinstance(o, Iterable):
307307
tools = map(lambda t: Tool.from_json(t), o) # type:ignore[attr-defined]
308-
return ToolsRepository(components=components, services=services, tools=tools)
308+
return ToolRepository(components=components, services=services, tools=tools)
309309

310310
@classmethod
311-
def xml_normalize(cls, o: ToolsRepository, *,
311+
def xml_normalize(cls, o: ToolRepository, *,
312312
element_name: str,
313313
view: Optional[Type['ViewType']],
314314
xmlns: Optional[str],
@@ -344,7 +344,7 @@ def xml_denormalize(cls, o: Element, *,
344344
default_ns: Optional[str],
345345
prop_info: 'ObjectMetadataLibrary.SerializableProperty',
346346
ctx: Type[Any],
347-
**kwargs: Any) -> ToolsRepository:
347+
**kwargs: Any) -> ToolRepository:
348348
tools = []
349349
components = None
350350
services = None
@@ -361,7 +361,7 @@ def xml_denormalize(cls, o: Element, *,
361361
s, default_ns), e)
362362
else:
363363
raise CycloneDxDeserializationException(f'unexpected: {e!r}')
364-
return ToolsRepository(
364+
return ToolRepository(
365365
tools=tools,
366366
components=components,
367367
services=services)

cyclonedx/model/vulnerability.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
ImpactAnalysisResponse,
5252
ImpactAnalysisState,
5353
)
54-
from .tool import Tool, ToolsRepository, _ToolsRepositoryHelper
54+
from .tool import Tool, ToolRepository, _ToolRepositoryHelper
5555

5656

5757
@serializable.serializable_class
@@ -954,7 +954,7 @@ def __init__(
954954
published: Optional[datetime] = None,
955955
updated: Optional[datetime] = None,
956956
credits: Optional[VulnerabilityCredits] = None,
957-
tools: Optional[Union[Iterable[Tool], ToolsRepository]] = None,
957+
tools: Optional[Union[Iterable[Tool], ToolRepository]] = None,
958958
analysis: Optional[VulnerabilityAnalysis] = None,
959959
affects: Optional[Iterable[BomTarget]] = None,
960960
properties: Optional[Iterable[Property]] = None,
@@ -1247,22 +1247,22 @@ def credits(self, credits: Optional[VulnerabilityCredits]) -> None:
12471247
self._credits = credits
12481248

12491249
@property
1250-
@serializable.type_mapping(_ToolsRepositoryHelper)
1250+
@serializable.type_mapping(_ToolRepositoryHelper)
12511251
@serializable.xml_sequence(17)
1252-
def tools(self) -> ToolsRepository:
1252+
def tools(self) -> ToolRepository:
12531253
"""
12541254
Tools used to create this BOM.
12551255
12561256
Returns:
1257-
`ToolsRepository` objects.
1257+
:class:`ToolRepository` object.
12581258
"""
12591259
return self._tools
12601260

12611261
@tools.setter
1262-
def tools(self, tools: Union[Iterable[Tool], ToolsRepository]) -> None:
1262+
def tools(self, tools: Union[Iterable[Tool], ToolRepository]) -> None:
12631263
self._tools = tools \
1264-
if isinstance(tools, ToolsRepository) \
1265-
else ToolsRepository(tools=tools)
1264+
if isinstance(tools, ToolRepository) \
1265+
else ToolRepository(tools=tools)
12661266

12671267
@property
12681268
@serializable.xml_sequence(18)

docs/upgrading.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ New: ``from cyclonedx.model.tool import Tool``
3535
Alter Metadata Tools
3636
--------------------
3737

38-
Property :attr:`cyclonedx.model.bom.BomMetaData.tools` is an instance of :class:`cyclonedx.model.tool.ToolsRepository`, now.
38+
Property :attr:`cyclonedx.model.bom.BomMetaData.tools` is an instance of :class:`cyclonedx.model.tool.ToolRepository`, now.
3939
Therefore, the process of adding new tools needs to be migrated changed.
4040

4141
Old: ``my_bom.metadata.tools.add(my_tool)``
@@ -45,7 +45,7 @@ New: ``my_bom.metadata.tools.tools.add(my_tool)``
4545
Alter Vulnerability Tools
4646
-------------------------
4747

48-
Property :attr:`cyclonedx.model.vulnerability.Vulnerability.tools` is an instance of :class:`cyclonedx.model.tool.ToolsRepository`, now.
48+
Property :attr:`cyclonedx.model.vulnerability.Vulnerability.tools` is an instance of :class:`cyclonedx.model.tool.ToolRepository`, now.
4949
Therefore, the process of adding new tools needs to be migrated changed.
5050

5151
Old: ``my_vulnerability.tools.add(my_tool)``

tests/_data/models.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@
8989
from cyclonedx.model.license import DisjunctiveLicense, License, LicenseAcknowledgement, LicenseExpression
9090
from cyclonedx.model.release_note import ReleaseNotes
9191
from cyclonedx.model.service import Service
92-
from cyclonedx.model.tool import Tool, ToolsRepository
92+
from cyclonedx.model.tool import Tool, ToolRepository
9393
from cyclonedx.model.vulnerability import (
9494
BomTarget,
9595
BomTargetVersionRange,
@@ -495,7 +495,7 @@ def get_bom_with_component_setuptools_with_vulnerability() -> Bom:
495495
],
496496
individuals=[get_org_contact_2()]
497497
),
498-
tools=ToolsRepository(tools=(
498+
tools=ToolRepository(tools=(
499499
Tool(vendor='CycloneDX', name='cyclonedx-python-lib'),
500500
)),
501501
analysis=VulnerabilityAnalysis(
@@ -1069,7 +1069,7 @@ def get_bom_with_tools() -> Bom:
10691069
def get_bom_with_tools_with_component_migrate() -> Bom:
10701070
return _make_bom(
10711071
metadata=BomMetaData(
1072-
tools=ToolsRepository(
1072+
tools=ToolRepository(
10731073
components=(
10741074
this_component(),
10751075
Component(name='test-component', bom_ref='test-component'),
@@ -1090,7 +1090,7 @@ def get_bom_with_tools_with_component_migrate() -> Bom:
10901090
def get_bom_with_tools_with_service_migrate() -> Bom:
10911091
return _make_bom(
10921092
metadata=BomMetaData(
1093-
tools=ToolsRepository(
1093+
tools=ToolRepository(
10941094
services=(
10951095
Service(name='test-service', bom_ref='test-service'),
10961096
Service(group='acme',
@@ -1107,7 +1107,7 @@ def get_bom_with_tools_with_service_migrate() -> Bom:
11071107
def get_bom_with_tools_with_component_and_service_migrate() -> Bom:
11081108
return _make_bom(
11091109
metadata=BomMetaData(
1110-
tools=ToolsRepository(
1110+
tools=ToolRepository(
11111111
components=(
11121112
this_component(),
11131113
Component(name='test-component', bom_ref='test-component'),
@@ -1134,7 +1134,7 @@ def get_bom_with_tools_with_component_and_service_migrate() -> Bom:
11341134

11351135

11361136
def get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate() -> Bom:
1137-
tools = ToolsRepository()
1137+
tools = ToolRepository()
11381138
tcomp = tools.components
11391139
tserv = tools.services
11401140
ttools = tools.tools

tests/test_deserialize_xml.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def test_prepared(self, get_bom: Callable[[], Bom], *_: Any, **__: Any) -> None:
4747
self.assertBomDeepEqual(expected, bom,
4848
fuzzy_deps=get_bom in all_get_bom_funct_with_incomplete_deps)
4949

50-
def test_unexpected_toolsrepository_item(self) -> None:
50+
def test_unexpected_toolrepository_item(self) -> None:
5151
with open(join(OWN_DATA_DIRECTORY, 'xml', '1.5', 'invalid-tool.xml')) as input_xml:
5252
with self.assertRaisesRegex(CycloneDxDeserializationException,
5353
r"^unexpected: <Element '{.+?}foo' at 0x[0-9a-fA-F]+>$"):

tests/test_model_tool_repository.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,16 @@
2020

2121
from cyclonedx.model.component import Component
2222
from cyclonedx.model.service import Service
23-
from cyclonedx.model.tool import Tool, ToolsRepository
23+
from cyclonedx.model.tool import Tool, ToolRepository
2424

2525

2626
class TestModelToolRepository(TestCase):
2727

28-
def test_init(self) -> ToolsRepository:
28+
def test_init(self) -> ToolRepository:
2929
c = Component(name='test-component')
3030
s = Service(name='test-service')
3131
t = Tool(name='test-tool')
32-
tr = ToolsRepository(
32+
tr = ToolRepository(
3333
components=(c,),
3434
services=(s,),
3535
tools=(t,)
@@ -45,36 +45,36 @@ def test_filled(self) -> None:
4545
self.assertTrue(tr)
4646

4747
def test_empty(self) -> None:
48-
tr = ToolsRepository()
48+
tr = ToolRepository()
4949
self.assertEqual(0, len(tr))
5050
self.assertFalse(tr)
5151

5252
def test_unequal_different_type(self) -> None:
53-
tr = ToolsRepository()
53+
tr = ToolRepository()
5454
self.assertFalse(tr == 'other')
5555

5656
def test_equal_self(self) -> None:
57-
tr = ToolsRepository()
57+
tr = ToolRepository()
5858
tr.tools.add(Tool(name='my-tool'))
5959
self.assertTrue(tr == tr)
6060

6161
def test_unequal(self) -> None:
62-
tr1 = ToolsRepository()
62+
tr1 = ToolRepository()
6363
tr1.components.add(Component(name='my-component'))
6464
tr1.services.add(Service(name='my-service'))
6565
tr1.tools.add(Tool(name='my-tool'))
66-
tr2 = ToolsRepository()
66+
tr2 = ToolRepository()
6767
self.assertFalse(tr1 == tr2)
6868

6969
def test_equal(self) -> None:
7070
c = Component(name='my-component')
7171
s = Service(name='my-service')
7272
t = Tool(name='my-tool')
73-
tr1 = ToolsRepository()
73+
tr1 = ToolRepository()
7474
tr1.components.add(c)
7575
tr1.services.add(s)
7676
tr1.tools.add(t)
77-
tr2 = ToolsRepository()
77+
tr2 = ToolRepository()
7878
tr2.components.add(c)
7979
tr2.services.add(s)
8080
tr2.tools.add(t)

0 commit comments

Comments
 (0)