8000 Refactor JSON parser · Issue #305 · spdx/tools-python · GitHub
[go: up one dir, main page]

Skip to content
Refactor JSON parser #305
Closed
Closed
@nicoweidner

Description

@nicoweidner

We want a refactored parser using the new data model (available on https://github.com/spdx/tools-python/tree/refactor-python-tools).

Possible basic interface (maybe extract an abstract base class later) as follows. The parser class should use composition instead of inheritance.

class JsonParser:
    creation_info_parser: CreationInfoParser
    package_parser: PackageParser
    file_parser: FileParser
    <...>

    def parse(self, filename: str) -> Document:
        logger = Logger()
         with open(filename) as file:
             input_doc_as_dict = json.load(file)
         document: Document = creation_info_parser.parse(input_doc_as_dict, logger)
         document.packages = package_parser.parse(input_doc_as_dict.get("packages"), logger)
        <...>
        
        if logger.has_errors():
            raise SpdxParsingError(logger.get_errors())
        return document

Metadata

Metadata

Assignees

Labels

parserIssues related to the parser layer

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions

    0