]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
check-version-history: apply "ruff format" and "ruff check --fix"
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 19 Feb 2026 17:04:33 +0000 (02:04 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sun, 17 May 2026 17:44:47 +0000 (02:44 +0900)
tools/check-version-history.py

index db32b6920ab52261007fc813d64eb41e32f70ede..39cf127b98df21822ca7c095f4d3362d398511ec 100755 (executable)
@@ -20,17 +20,14 @@ def find_undocumented_functions(pages, ignorelist):
         filename = os.path.basename(page)
         pagetree = tree.parse(page)
 
-        assert pagetree.getroot().tag == "refentry"
+        assert pagetree.getroot().tag == 'refentry'
 
         hist_section = pagetree.find("refsect1[title='History']")
-        for func in pagetree.findall(".//funcprototype/funcdef/function"):
+        for func in pagetree.findall('.//funcprototype/funcdef/function'):
             path = f"./refsynopsisdiv/funcsynopsis/funcprototype/funcdef/function[.='{func.text}']"
             assert pagetree.findall(path) == [func]
 
-            if (
-                hist_section is None
-                or hist_section.find(f"para/function[.='{func.text}()']") is None
-            ):
+            if hist_section is None or hist_section.find(f"para/function[.='{func.text}()']") is None:
                 if func.text not in ignorelist:
                     undocumented.append((filename, func.text))
     return undocumented
@@ -39,22 +36,22 @@ def find_undocumented_functions(pages, ignorelist):
 def construct_path(element):
     tag = element.tag
 
-    if tag == "refentry":
-        return "."
+    if tag == 'refentry':
+        return '.'
 
-    predicate = ""
-    if tag == "varlistentry":
-        text = "".join(element.find("term").itertext())
+    predicate = ''
+    if tag == 'varlistentry':
+        text = ''.join(element.find('term').itertext())
         predicate = f'[term="{text}"]'
-    elif tag.startswith("refsect"):
-        text = "".join(element.find("title").itertext())
+    elif tag.startswith('refsect'):
+        text = ''.join(element.find('title').itertext())
         predicate = f'[title="{text}"]'
-    elif tag == "variablelist":
+    elif tag == 'variablelist':
         varlists = element.getparent().findall(tag)
         if len(varlists) > 1:
-            predicate = f"[{varlists.index(element)+1}]"
+            predicate = f'[{varlists.index(element) + 1}]'
 
-    return construct_path(element.getparent()) + "/" + tag + predicate
+    return construct_path(element.getparent()) + '/' + tag + predicate
 
 
 def find_undocumented_commands(pages, ignorelist):
@@ -63,23 +60,21 @@ def find_undocumented_commands(pages, ignorelist):
         filename = os.path.basename(page)
 
         pagetree = tree.parse(page)
-        if pagetree.getroot().tag != "refentry":
+        if pagetree.getroot().tag != 'refentry':
             continue
 
-        for varlistentry in pagetree.findall("*//variablelist/varlistentry"):
+        for varlistentry in pagetree.findall('*//variablelist/varlistentry'):
             path = construct_path(varlistentry)
 
             assert pagetree.findall(path) == [varlistentry]
 
-            listitem = varlistentry.find("listitem")
+            listitem = varlistentry.find('listitem')
             parent = listitem if listitem is not None else varlistentry
 
             rev = parent.getchildren()[-1]
-            if (
-                rev.get("href") != "version-info.xml" and
-                not path.startswith(tuple(entry[1] for entry in ignorelist if entry[0] == filename))
-            ):
-                    undocumented.append((filename, path))
+            ignored_files = tuple(entry[1] for entry in ignorelist if entry[0] == filename)
+            if rev.get('href') != 'version-info.xml' and not path.startswith(ignored_files):
+                undocumented.append((filename, path))
 
     return undocumented
 
@@ -90,54 +85,44 @@ def process_pages(pages):
 
     for page in pages:
         filename = os.path.basename(page)
-        if filename.startswith("org.freedesktop."):  # dbus
+        if filename.startswith('org.freedesktop.'):  # dbus
             continue
 
-        if (
-            filename.startswith("sd_")
-            or filename.startswith("sd-")
-            or filename.startswith("udev_")
-        ):
+        if filename.startswith('sd_') or filename.startswith('sd-') or filename.startswith('udev_'):
             function_pages.append(page)
             continue
 
         command_pages.append(page)
 
-    undocumented_commands = find_undocumented_commands(
-        command_pages, command_ignorelist
-    )
-    undocumented_functions = find_undocumented_functions(
-        function_pages, function_ignorelist
-    )
+    undocumented_commands = find_undocumented_commands(command_pages, command_ignorelist)
+    undocumented_functions = find_undocumented_functions(function_pages, function_ignorelist)
 
     return undocumented_commands, undocumented_functions
 
 
-if __name__ == "__main__":
-    with open(os.path.join(os.path.dirname(__file__), "command_ignorelist")) as f:
+if __name__ == '__main__':
+    with open(os.path.join(os.path.dirname(__file__), 'command_ignorelist')) as f:
         command_ignorelist = []
-        for l in f.read().splitlines():
-            if l.startswith("#"):
+        for line in f.read().splitlines():
+            if line.startswith('#'):
                 continue
-            fname, path = l.split(" ", 1)
-            path = path.replace("\\n", "\n")
+            fname, path = line.split(' ', 1)
+            path = path.replace('\\n', '\n')
             command_ignorelist.append((fname, path))
-    with open(os.path.join(os.path.dirname(__file__), "function_ignorelist")) as f:
+    with open(os.path.join(os.path.dirname(__file__), 'function_ignorelist')) as f:
         function_ignorelist = f.read().splitlines()
 
     undocumented_commands, undocumented_functions = process_pages(sys.argv[1:])
 
     if undocumented_commands or undocumented_functions:
         for filename, func in undocumented_functions:
-            print(
-                f"Function {func}() in {filename} isn't documented in the History section."
-            )
+            print(f"Function {func}() in {filename} isn't documented in the History section.")
         for filename, path in undocumented_commands:
-            print(filename, path, "is undocumented")
+            print(filename, path, 'is undocumented')
         if undocumented_commands:
             print(
-                "Hint: if you reorganized this part of the documentation, "
-                "please update tools/commands_ignorelist."
+                'Hint: if you reorganized this part of the documentation, '
+                'please update tools/commands_ignorelist.'
             )
 
         sys.exit(1)