Skip to content

Commit

Permalink
moved last two checks to own file
Browse files Browse the repository at this point in the history
Signed-off-by: Anton Utz <[email protected]>
  • Loading branch information
ant-u committed Mar 20, 2024
1 parent 26d0b9a commit bce5747
Show file tree
Hide file tree
Showing 4 changed files with 82 additions and 37 deletions.
32 changes: 0 additions & 32 deletions src/ros_license_toolkit/checks.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@

from enum import IntEnum

from ros_license_toolkit.license_tag import is_license_name_in_spdx_list
from ros_license_toolkit.package import Package, PackageException
from ros_license_toolkit.ui_elements import NO_REASON_STR, green, red, yellow

Expand Down Expand Up @@ -105,34 +104,3 @@ def check(self, package: Package):
def _check(self, package: Package):
"""Check `package`. To be overwritten by subclasses."""
raise NotImplementedError("Overwrite this")


class LicenseTagExistsCheck(Check):
"""This ensures that a tag defining the license exists."""

def _check(self, package: Package):
if len(package.license_tags) == 0:
self._failed("No license tag defined.")
self.verbose_output = red(str(package.package_xml))
else:
self._success(
f"Found licenses {list(map(str, package.license_tags))}")


class LicenseTagIsInSpdxListCheck(Check):
"""This ensures that the license tag is in the SPDX list of licenses."""

def _check(self, package: Package):
licenses_not_in_spdx_list = []
for license_tag in package.license_tags.keys():
if not is_license_name_in_spdx_list(
license_tag):
licenses_not_in_spdx_list.append(license_tag)
if len(licenses_not_in_spdx_list) > 0:
self._warning(
f"Licenses {licenses_not_in_spdx_list} are "
"not in SPDX list of licenses. "
"Make sure to exactly match one of https://spdx.org/licenses/."
)
else:
self._success("All license tags are in SPDX list of licenses.")
33 changes: 33 additions & 0 deletions src/ros_license_toolkit/license_checks/license_tag_exists_check.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Copyright (c) 2024 - for information on the respective copyright owner
# see the NOTICE file and/or the repository
# https://github.com/boschresearch/ros_license_toolkit

# 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.

"""This Module contains LicenseTagExistsCheck, which implements Check."""

from ros_license_toolkit.checks import Check
from ros_license_toolkit.package import Package
from ros_license_toolkit.ui_elements import red


class LicenseTagExistsCheck(Check):
"""This ensures that a tag defining the license exists."""

def _check(self, package: Package):
if len(package.license_tags) == 0:
self._failed("No license tag defined.")
self.verbose_output = red(str(package.package_xml))
else:
self._success(
f"Found licenses {list(map(str, package.license_tags))}")
40 changes: 40 additions & 0 deletions src/ros_license_toolkit/license_checks/license_tag_is_spdx.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Copyright (c) 2024 - for information on the respective copyright owner
# see the NOTICE file and/or the repository
# https://github.com/boschresearch/ros_license_toolkit

# 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.

"""This Module contains LicenseTagIsInSpdxListCheck, which implements Check."""

from ros_license_toolkit.checks import Check
from ros_license_toolkit.license_tag import is_license_name_in_spdx_list
from ros_license_toolkit.package import Package


class LicenseTagIsInSpdxListCheck(Check):
"""This ensures that the license tag is in the SPDX list of licenses."""

def _check(self, package: Package):
licenses_not_in_spdx_list = []
for license_tag in package.license_tags.keys():
if not is_license_name_in_spdx_list(
license_tag):
licenses_not_in_spdx_list.append(license_tag)
if len(licenses_not_in_spdx_list) > 0:
self._warning(
f"Licenses {licenses_not_in_spdx_list} are "
"not in SPDX list of licenses. "
"Make sure to exactly match one of https://spdx.org/licenses/."
)
else:
self._success("All license tags are in SPDX list of licenses.")
14 changes: 9 additions & 5 deletions src/ros_license_toolkit/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,16 @@
import timeit
from typing import Optional, Sequence

from ros_license_toolkit.checks import (LicenseTagExistsCheck,
LicenseTagIsInSpdxListCheck, Status)
from ros_license_toolkit.license_file_referenced_check import \
from ros_license_toolkit.checks import Status
from ros_license_toolkit.license_checks.license_file_referenced_check import \
LicenseFilesReferencedCheck
from ros_license_toolkit.license_in_code_check import LicensesInCodeCheck
from ros_license_toolkit.license_text_exists_check import \
from ros_license_toolkit.license_checks.license_in_code_check import \
LicensesInCodeCheck
from ros_license_toolkit.license_checks.license_tag_exists_check import \
LicenseTagExistsCheck
from ros_license_toolkit.license_checks.license_tag_is_spdx import \
LicenseTagIsInSpdxListCheck
from ros_license_toolkit.license_checks.license_text_exists_check import \
LicenseTextExistsCheck
from ros_license_toolkit.package import get_packages_in_path
from ros_license_toolkit.ui_elements import (FAILURE_STR, SUCCESS_STR,
Expand Down

0 comments on commit bce5747

Please sign in to comment.