diff --git a/cyclonedx/model/bom.py b/cyclonedx/model/bom.py index e67831fc..3e7e0762 100644 --- a/cyclonedx/model/bom.py +++ b/cyclonedx/model/bom.py @@ -26,7 +26,6 @@ from sortedcontainers import SortedSet from ..exception.model import LicenseExpressionAlongWithOthersException, UnknownComponentDependencyException -from ..parser import BaseParser from ..schema.schema import ( SchemaVersion1Dot0, SchemaVersion1Dot1, @@ -260,28 +259,10 @@ class Bom: """ This is our internal representation of a bill-of-materials (BOM). - You can either create a `cyclonedx.model.bom.Bom` yourself programmatically, or generate a `cyclonedx.model.bom.Bom` - from a `cyclonedx.parser.BaseParser` implementation. - Once you have an instance of `cyclonedx.model.bom.Bom`, you can pass this to an instance of `cyclonedx.output.BaseOutput` to produce a CycloneDX document according to a specific schema version and format. """ - @staticmethod - def from_parser(parser: BaseParser) -> 'Bom': - """ - Create a Bom instance from a Parser object. - - Args: - parser (`cyclonedx.parser.BaseParser`): A valid parser instance. - - Returns: - `cyclonedx.model.bom.Bom`: A Bom instance that represents the valid data held in the supplied parser. - """ - bom = Bom() - bom.components.update(parser.get_components()) - return bom - def __init__(self, *, components: Optional[Iterable[Component]] = None, services: Optional[Iterable[Service]] = None, external_references: Optional[Iterable[ExternalReference]] = None, diff --git a/cyclonedx/parser/__init__.py b/cyclonedx/parser/__init__.py deleted file mode 100644 index 06990d47..00000000 --- a/cyclonedx/parser/__init__.py +++ /dev/null @@ -1,68 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 -# Copyright (c) OWASP Foundation. All Rights Reserved. - - -""" -Set of classes and methods which allow for quick creation of a Bom instance from your environment or Python project. - -Use a Parser instead of programmatically creating a Bom as a developer. -""" - -from typing import List - -from ..model.component import Component - - -class ParserWarning: - _item: str - _warning: str - - def __init__(self, item: str, warning: str) -> None: - self._item = item - self._warning = warning - - def get_item(self) -> str: - return self._item - - def get_warning_message(self) -> str: - return self._warning - - def __repr__(self) -> str: - return f'' - - -class BaseParser: - _components: List[Component] = [] - _warnings: List[ParserWarning] = [] - - def __init__(self) -> None: - """ - - :rtype: object - """ - self._components.clear() - self._warnings.clear() - - def component_count(self) -> int: - return len(self._components) - - def get_components(self) -> List[Component]: - return self._components - - def get_warnings(self) -> List[ParserWarning]: - return self._warnings - - def has_warnings(self) -> bool: - return len(self._warnings) > 0