commit:     bd21cbc2b2fa4e7761463136c5aaf88304272e68
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Thu Aug  1 19:40:27 2024 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Thu Aug  1 19:40:27 2024 +0000
URL:        
https://gitweb.gentoo.org/proj/pkgcore/pkgcheck.git/commit/?id=bd21cbc2

EmptyGlobalAssignment: ignore empty KEYWORDS

Resolves: https://github.com/pkgcore/pkgcheck/issues/695
Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 src/pkgcheck/checks/codingstyle.py                               | 9 +++++++--
 .../MetadataVarCheck/EmptyGlobalAssignment/expected.json         | 1 -
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/pkgcheck/checks/codingstyle.py 
b/src/pkgcheck/checks/codingstyle.py
index cfc7f8da..42bd0004 100644
--- a/src/pkgcheck/checks/codingstyle.py
+++ b/src/pkgcheck/checks/codingstyle.py
@@ -634,6 +634,8 @@ class MetadataVarCheck(Check):
     # mapping between registered variables and verification methods
     known_variables = {}
 
+    empty_vars_whitelist = frozenset({"KEYWORDS"})
+
     @verify_vars("HOMEPAGE", "KEYWORDS")
     def _raw_text(self, var, node, value, pkg):
         matches = []
@@ -710,8 +712,11 @@ class MetadataVarCheck(Check):
             value_str = self.canonicalize_assign(pkg.node_str(value_node)) if 
value_node else ""
             if name in pkg.eapi.eclass_keys:
                 if not value_str:
-                    lineno, _ = node.start_point
-                    yield EmptyGlobalAssignment(line=pkg.node_str(node), 
lineno=lineno + 1, pkg=pkg)
+                    if name not in self.empty_vars_whitelist:
+                        lineno, _ = node.start_point
+                        yield EmptyGlobalAssignment(
+                            line=pkg.node_str(node), lineno=lineno + 1, pkg=pkg
+                        )
                 elif pkg.node_str(value_node.prev_sibling) == "=":
                     for var_node, _ in bash.var_query.captures(value_node):
                         if (

diff --git 
a/testdata/data/repos/standalone/MetadataVarCheck/EmptyGlobalAssignment/expected.json
 
b/testdata/data/repos/standalone/MetadataVarCheck/EmptyGlobalAssignment/expected.json
index 7cab9376..c5c90f2d 100644
--- 
a/testdata/data/repos/standalone/MetadataVarCheck/EmptyGlobalAssignment/expected.json
+++ 
b/testdata/data/repos/standalone/MetadataVarCheck/EmptyGlobalAssignment/expected.json
@@ -1,3 +1,2 @@
 {"__class__": "EmptyGlobalAssignment", "category": "DescriptionCheck", 
"package": "BadDescription", "version": "1", "line": "DESCRIPTION=\"\"", 
"lineno": 1}
-{"__class__": "EmptyGlobalAssignment", "category": "MetadataVarCheck", 
"package": "MultipleKeywordsLines", "version": "0", "line": "KEYWORDS=\"\"", 
"lineno": 8}
 {"__class__": "EmptyGlobalAssignment", "category": "MetadataVarCheck", 
"package": "ReferenceInMetadataVar", "version": "3", "line": "LICENSE=\"\"", 
"lineno": 4}

Reply via email to