[PATCH i-g-t 3/3] scripts/xls_to_doc.py: ignore fields filled by lists by default

Piecielska, Katarzyna katarzyna.piecielska at intel.com
Fri Mar 8 11:47:18 UTC 2024


Currently, some parmeters like Run Type are imported from files.
Don't add documentation for them by default, preserving the way it was originally meant to be filled.

Signed-off-by: Mauro Carvalho Chehab <mchehab at kernel.org>
[Katarzyna] 
LGTM 😊
Acked-by: Katarzyna Piecielska <katarzyna.piecielska at intel.com>
---
 scripts/xls_to_doc.py | 27 ++++++++++++++++++++++-----
 1 file changed, 22 insertions(+), 5 deletions(-)

diff --git a/scripts/xls_to_doc.py b/scripts/xls_to_doc.py index 91440ac6291f..510ab54276ba 100755
--- a/scripts/xls_to_doc.py
+++ b/scripts/xls_to_doc.py
@@ -24,6 +24,7 @@ class FillTests(TestList):
     def __init__(self, config_path):
         self.tests = {}
         self.spreadsheet_data = {}
+        self.ignore_fields = []
 
         TestList.__init__(self, config_path)
 
@@ -62,6 +63,12 @@ class FillTests(TestList):
 
                 self.tests[testname]["subtests"][subtest] = subtest_dict
 
+        for field, item in self.props.items():
+            if "sublevel" in item["_properties_"]:
+                    update = self.props[field]["_properties_"].get("update-from-file")
+                    if update:
+                        self.ignore_fields.append(field)
+
     def add_field(self, dic, field, value):
         if field in dic and dic[field] != '':
             fields = sorted(dic[field].split(", ")) @@ -198,7 +205,7 @@ class FillTests(TestList):
             for key, value in row.items():
                 self.tests[testname]["subtests"][subtest][key] = value
 
-    def update_test_file(self, testname):
+    def update_test_file(self, testname, args):
         try:
 #            print(f"Updating {testname}")
 
@@ -230,6 +237,11 @@ class FillTests(TestList):
                 for field, value in sorted(subtest_content.items()):
                     if field in [ 'line', 'subtest_nr' ]:
                         continue
+
+                    if args.ignore_lists:
+                        if field in  self.ignore_fields:
+                            continue
+
                     doc_value = doc_content.get(field)
                     if doc_value:
                         if self.key_has_wildcard.search(doc_value):
@@ -270,19 +282,20 @@ class FillTests(TestList):
         except EnvironmentError:
             print(f'Failed to write to {sourcename}')
 
-    def update_test_files(self):
+    def update_test_files(self, args):
 
         """ Populate documentation """
 
         for testname in self.tests:
-            self.update_test_file(testname)
+            self.update_test_file(testname, args)
 
 ######
 # Main
 ######
 
 parser = argparse.ArgumentParser(description=__doc__,
-                                    formatter_class = argparse.RawDescriptionHelpFormatter,
+                                    formatter_class = argparse.ArgumentDefaultsHelpFormatter,
+                                    argument_default = 
+ argparse.SUPPRESS,
                                     epilog = EPILOG)  parser.add_argument("--config", required = True,
                     help="JSON file describing the test plan template") @@ -290,11 +303,15 @@ parser.add_argument("--xls", required = True,
                     help="Input XLS file.")  parser.add_argument("--sheets", nargs = "*",
                     help="Input only some specific sheets from the XLS file.")
+parser.add_argument('--ignore-lists',action='store_false', 
+default=True, help='Ignore fields that are updated via test lists')
 
 parse_args = parser.parse_args()
 
 fill_test = FillTests(parse_args.config)
 
+if "sheets" not in parse_args:
+    parse_args.sheets = None
+
 fill_test.parse_spreadsheet(parse_args.xls, parse_args.sheets)
 
 ## DEBUG: remove it later on
@@ -304,4 +321,4 @@ with open("doc.json", "w", encoding='utf8') as write_file:
     json.dump(fill_test.doc, write_file, indent = 4)
 
 
-fill_test.update_test_files()
+fill_test.update_test_files(parse_args)
--
2.43.2



More information about the igt-dev mailing list