diff --git a/licomp_toolkit/format.py b/licomp_toolkit/format.py index 263ef75..31e1a77 100644 --- a/licomp_toolkit/format.py +++ b/licomp_toolkit/format.py @@ -3,6 +3,7 @@ # SPDX-License-Identifier: GPL-3.0-or-later import json +import yaml class LicompToolkitFormatter(): @@ -12,6 +13,10 @@ def formatter(fmt): return JsonLicompToolkitFormatter() if fmt.lower() == 'text': return TextLicompToolkitFormatter() + if fmt.lower() == 'yaml': + return YamlLicompToolkitFormatter() + if fmt.lower() == 'yml': + return YamlLicompToolkitFormatter() def format_compatibilities(self, compat): return None @@ -39,6 +44,20 @@ def format_licomp_licenses(self, licomp_licenses): def format_licomp_versions(self, licomp_versions): return json.dumps(licomp_versions, indent=4) +class YamlLicompToolkitFormatter(): + + def format_compatibilities(self, compat): + return yaml.safe_dump(compat, indent=4) + + def format_licomp_resources(self, licomp_resources): + return yaml.safe_dump(licomp_resources, indent=4) + + def format_licomp_licenses(self, licomp_licenses): + return yaml.safe_dump(licomp_licenses, indent=4) + + def format_licomp_versions(self, licomp_versions): + return yaml.safe_dump(licomp_versions, indent=4) + class TextLicompToolkitFormatter(): def format_licomp_resources(self, licomp_resources): diff --git a/requirements.txt b/requirements.txt index b1147e6..01323f7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,3 +6,4 @@ licomp-proprietary == 0.5.* licomp-hermione == 0.5.* licomp-gnuguide == 0.5.* foss-flame +PyYaml