in atr/tasks/checks/license.py [0:0]
def _files_check_core_logic_notice(tf: tarfile.TarFile, member: tarfile.TarInfo) -> tuple[bool, list[str]]:
"""Verify that the NOTICE file follows the required format."""
f = tf.extractfile(member)
if not f:
return False, ["Could not read NOTICE file"]
content = f.read().decode("utf-8")
issues = []
if not re.search(r"Apache\s+[\w\-\.]+", content, re.MULTILINE):
issues.append("Missing or invalid Apache product header")
if not re.search(r"Copyright\s+(?:\d{4}|\d{4}-\d{4})\s+The Apache Software Foundation", content, re.MULTILINE):
issues.append("Missing or invalid copyright statement")
if not re.search(
r"This product includes software developed at\s*\nThe Apache Software Foundation \(.*?\)", content, re.DOTALL
):
issues.append("Missing or invalid foundation attribution")
return len(issues) == 0, issues