redo commit adbe1ffb671b29c6854f951fa65d939895600fe6
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sun, 11 Jun 2023 12:33:48 +0000 (13:33 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sun, 11 Jun 2023 12:33:48 +0000 (13:33 +0100)
Author: Luke Kenneth Casson Leighton <lkcl@lkcl.net>
Date:   Sat Jun 10 23:42:32 2023 +0100

    lambda is a singleton (hashable) therefore can be safely set as the
    default option to a function parameter
    https://bugs.libre-soc.org/show_bug.cgi?id=1094#c89

src/openpower/insndb/core.py
src/openpower/insndb/db.py

index 2d0730c769e5a1b17ac125af1ad8f27f1518435b..d77b2f0d336b36328aa39c75a6afdd1abe48004e 100644 (file)
@@ -71,7 +71,7 @@ class walkmethod:
 
 class Node:
     @walkmethod
-    def walk(clsself, match=None):
+    def walk(clsself, match=lambda _: True):
         yield from ()
 
 
@@ -83,10 +83,7 @@ class DataclassMeta(type):
 
 class Dataclass(Node, metaclass=DataclassMeta):
     @walkmethod
-    def walk(clsself, match=None):
-        if match is None:
-            match = lambda subnode: True
-
+    def walk(clsself, match=lambda _: True):
         def field_type(field):
             return field.type
 
@@ -107,10 +104,7 @@ class Tuple(Node, tuple):
         return super().__init_subclass__()
 
     @walkmethod
-    def walk(clsself, match=None):
-        if match is None:
-            match = lambda subnode: True
-
+    def walk(clsself, match=lambda _: True):
         if isinstance(clsself, type):
             yield ("[]", clsself.__datatype)
         else:
@@ -145,10 +139,7 @@ class Dict(Node, dict):
         raise NotImplementedError()
 
     @walkmethod
-    def walk(clsself, match=None):
-        if match is None:
-            match = lambda subnode: True
-
+    def walk(clsself, match=lambda _: True):
         if isinstance(clsself, type):
             yield ("{}", clsself.__datatype)
         else:
@@ -218,7 +209,7 @@ class visitormethod:
         return VisitorMethod(nodecls=self.__nodecls, method=method)
 
 
-def walk(root, match=None):
+def walk(root, match=lambda _: True):
     pairs = _collections.deque([root])
     while pairs:
         (path, node) = pairs.popleft()
@@ -226,10 +217,10 @@ def walk(root, match=None):
         yield (path, node)
 
 
-def visit(visitor, node, path="/"):
+def visit(visitor, node, path="/", match=lambda _: True):
     with visitor(path=path, node=node):
         if isinstance(node, Node):
-            for (subpath, subnode) in node.walk():
+            for (subpath, subnode) in node.walk(match=match):
                 visit(visitor=visitor, path=subpath, node=subnode)
 
 
@@ -3859,10 +3850,7 @@ class Database(Node):
         return super().__init__()
 
     @walkmethod
-    def walk(clsself, match=None):
-        if match is None:
-            match = lambda subnode: True
-
+    def walk(clsself, match=lambda _: True):
         if isinstance(clsself, type):
             yield ("records", Records)
         else:
index c7788f8a08c58545c215eadb95a4fa37771b1626..fa5eb267ea7ae14f442183b260c2580b16d56a80 100644 (file)
@@ -173,7 +173,7 @@ def main():
     db = Database(find_wiki_dir())
     (path, records) = next(db.walk(match=lambda pair: isinstance(pair, Records)))
     if not isinstance(visitor, InstructionVisitor):
-        match = None
+        match = lambda _: True
     else:
         insn = args.pop("insn")
         def match(record):