[libvirt] [PATCH 07/10] python: sanitize blank line usage

Daniel P. Berrangé berrange at redhat.com
Wed Oct 9 12:58:41 UTC 2019


Coding style expects 1 blank line between each method and 2 blank lines
before each class.

docs/apibuild.py:171:5: E303 too many blank lines (2)
    def set_header(self, header):
    ^
docs/apibuild.py:230:1: E302 expected 2 blank lines, found 1
class index:
^
docs/apibuild.py:175:5: E301 expected 1 blank line, found 0
    def set_module(self, module):
    ^
...more...

Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
---
 build-aux/syntax-check.mk          |  2 -
 docs/apibuild.py                   | 26 ++++++++--
 docs/reformat-news.py              |  1 +
 src/esx/esx_vi_generator.py        | 81 ------------------------------
 src/hyperv/hyperv_wmi_generator.py | 23 +--------
 tests/cputestdata/cpu-cpuid.py     |  1 +
 6 files changed, 25 insertions(+), 109 deletions(-)

diff --git a/build-aux/syntax-check.mk b/build-aux/syntax-check.mk
index c66183c1b0..c6d7ad1b9d 100644
--- a/build-aux/syntax-check.mk
+++ b/build-aux/syntax-check.mk
@@ -881,13 +881,11 @@ sc_require_enum_last_marker:
 # Validate many python style rules
 FLAKE8_INDENTATION = E114,E115,E116,E121,E125,E126,E127,E128,E129,E131
 FLAKE8_WHITESPACE = E211,E221,E222,E225,E226,E231,E261
-FLAKE8_BLANK_LINES = E301,E302,E303,E305
 FLAKE8_LINE_LENGTH = E501
 FLAKE8_WARNINGS = W504
 
 FLAKE8_IGNORE = $(FLAKE8_INDENTATION),$\
 		$(FLAKE8_WHITESPACE),$\
-		$(FLAKE8_BLANK_LINES),$\
 		$(FLAKE8_LINE_LENGTH),$\
 		$(FLAKE8_WARNINGS) \
 		$(NULL)
diff --git a/docs/apibuild.py b/docs/apibuild.py
index 86163c20b1..e944c01321 100755
--- a/docs/apibuild.py
+++ b/docs/apibuild.py
@@ -123,6 +123,7 @@ hidden_macros = {
   "VIR_EXPORT_VAR": "internal macro to mark exported vars",
 }
 
+
 def escape(raw):
     raw = raw.replace('&', '&')
     raw = raw.replace('<', '<')
@@ -131,9 +132,11 @@ def escape(raw):
     raw = raw.replace('"', '"')
     return raw
 
+
 def uniq(items):
     return sorted(set(items))
 
+
 class identifier:
     def __init__(self, name, header=None, module=None, type=None, lineno=0,
                  info=None, extra=None, conditionals=None):
@@ -167,21 +170,27 @@ class identifier:
             r = r + " " + repr(self.conditionals)
         return r
 
-
     def set_header(self, header):
         self.header = header
+
     def set_module(self, module):
         self.module = module
+
     def set_type(self, type):
         self.type = type
+
     def set_info(self, info):
         self.info = info
+
     def set_extra(self, extra):
         self.extra = extra
+
     def set_lineno(self, lineno):
         self.lineno = lineno
+
     def set_static(self, static):
         self.static = static
+
     def set_conditionals(self, conditionals):
         if conditionals is None or len(conditionals) == 0:
             self.conditionals = None
@@ -190,20 +199,28 @@ class identifier:
 
     def get_name(self):
         return self.name
+
     def get_header(self):
         return self.module
+
     def get_module(self):
         return self.module
+
     def get_type(self):
         return self.type
+
     def get_info(self):
         return self.info
+
     def get_lineno(self):
         return self.lineno
+
     def get_extra(self):
         return self.extra
+
     def get_static(self):
         return self.static
+
     def get_conditionals(self):
         return self.conditionals
 
@@ -225,6 +242,7 @@ class identifier:
         if conditionals is not None:
             self.set_conditionals(conditionals)
 
+
 class index:
     def __init__(self, name="noname"):
         self.name = name
@@ -409,7 +427,6 @@ class index:
         elif count != 0:
             print("  %d public %s" % (count, type))
 
-
     def analyze(self):
         if not quiet:
             self.analyze_dict("functions", self.functions)
@@ -419,6 +436,7 @@ class index:
             self.analyze_dict("typedefs", self.typedefs)
             self.analyze_dict("macros", self.macros)
 
+
 class CLexer:
     """A lexer for the C language, tokenize the input by reading and
        analyzing it line by line"""
@@ -584,6 +602,7 @@ class CLexer:
         self.last = tok
         return tok
 
+
 class CParser:
     """The C module parser"""
     def __init__(self, filename, idx=None):
@@ -745,6 +764,7 @@ class CParser:
                          % name)
 
         return desc
+
     #
     # Parse a comment block associate to a macro
     #
@@ -945,7 +965,6 @@ class CParser:
             if desc == "":
                 self.warning("Function comment for %s lacks description of the function" % name)
 
-
         return (ret[0], retdesc), args, desc
 
     def parsePreproc(self, token):
@@ -1434,7 +1453,6 @@ class CParser:
             if token[0] == "comment":
                 token = self.token()
 
-
         if token[0] == "sep" and token[1] == ';':
             token = self.token()
 
diff --git a/docs/reformat-news.py b/docs/reformat-news.py
index 955ce2d45b..a06f945c02 100755
--- a/docs/reformat-news.py
+++ b/docs/reformat-news.py
@@ -24,6 +24,7 @@ import sys
 
 COLUMNS = 80
 
+
 def reformat_with_indent(text, initial_indent, indent):
 
     res = ""
diff --git a/src/esx/esx_vi_generator.py b/src/esx/esx_vi_generator.py
index 28d440a6df..2310b56ad0 100755
--- a/src/esx/esx_vi_generator.py
+++ b/src/esx/esx_vi_generator.py
@@ -29,7 +29,6 @@ import os
 import os.path
 
 
-
 OCCURRENCE__REQUIRED_ITEM = "r"
 OCCURRENCE__REQUIRED_LIST = "rl"
 OCCURRENCE__OPTIONAL_ITEM = "o"
@@ -47,30 +46,24 @@ autobind_names = set()
 separator = "/* " + ("* " * 37) + "*\n"
 
 
-
 def aligned(left, right, length=59):
     return left.ljust(length, ' ') + right
 
 
-
 class Member:
     def __init__(self, type, occurrence):
         self.type = type
         self.occurrence = occurrence
 
-
     def is_enum(self):
         return self.type in predefined_enums or self.type in enums_by_name
 
-
     def is_object(self):
         return self.type in predefined_objects or self.type in objects_by_name
 
-
     def is_type_generated(self):
         return self.type in enums_by_name or self.type in objects_by_name
 
-
     def get_occurrence_comment(self):
         occurrence_map = {
             OCCURRENCE__REQUIRED_ITEM: "/* required */",
@@ -84,8 +77,6 @@ class Member:
             raise ValueError("unknown occurrence value '%s'" % self.occurrence)
 
 
-
-
 class Parameter(Member):
     def __init__(self, type, name, occurrence):
         Member.__init__(self, type, occurrence)
@@ -96,7 +87,6 @@ class Parameter(Member):
             self.name = name
             self.autobind_name = None
 
-
     def generate_parameter(self, is_last=False, is_header=True, offset=0):
         if self.occurrence == OCCURRENCE__IGNORED:
             raise ValueError("invalid function parameter occurrence value '%s'"
@@ -118,7 +108,6 @@ class Parameter(Member):
 
             return aligned(string, self.get_occurrence_comment() + "\n")
 
-
     def generate_return(self, offset=0, end_of_line=";"):
         if self.occurrence == OCCURRENCE__IGNORED:
             raise ValueError("invalid function parameter occurrence value '%s'"
@@ -131,7 +120,6 @@ class Parameter(Member):
 
             return aligned(string, self.get_occurrence_comment() + "\n")
 
-
     def generate_require_code(self):
         if self.occurrence in [OCCURRENCE__REQUIRED_ITEM,
                                OCCURRENCE__REQUIRED_LIST]:
@@ -139,7 +127,6 @@ class Parameter(Member):
         else:
             return ""
 
-
     def generate_serialize_code(self):
         if self.occurrence in [OCCURRENCE__REQUIRED_LIST,
                                OCCURRENCE__OPTIONAL_LIST]:
@@ -152,7 +139,6 @@ class Parameter(Member):
             return "    ESX_VI__METHOD__PARAMETER__SERIALIZE(%s, %s)\n" \
                    % (self.type, self.name)
 
-
     def get_type_string(self, as_return_value=False):
         string = ""
 
@@ -173,7 +159,6 @@ class Parameter(Member):
 
         return string
 
-
     def get_occurrence_short_enum(self):
         if self.occurrence == OCCURRENCE__REQUIRED_ITEM:
             return "RequiredItem"
@@ -187,7 +172,6 @@ class Parameter(Member):
         raise ValueError("unknown occurrence value '%s'" % self.occurrence)
 
 
-
 class Method:
     def __init__(self, name, parameters, returns):
         self.name = name
@@ -201,7 +185,6 @@ class Method:
             else:
                 self.autobind_parameter = parameter
 
-
     def generate_header(self):
         header = "int esxVI_%s\n" % self.name
         header += "      (esxVI_Context *ctx"
@@ -224,7 +207,6 @@ class Method:
 
         return header
 
-
     def generate_source(self):
         source = "/* esxVI_%s */\n" % self.name
         source += "ESX_VI__METHOD(%s," % self.name
@@ -288,14 +270,12 @@ class Method:
         return source
 
 
-
 class Property(Member):
     def __init__(self, type, name, occurrence):
         Member.__init__(self, type, occurrence)
 
         self.name = name
 
-
     def generate_struct_member(self):
         if self.occurrence == OCCURRENCE__IGNORED:
             return "    /* FIXME: %s is currently ignored */\n" % self.name
@@ -304,7 +284,6 @@ class Property(Member):
 
             return aligned(string, self.get_occurrence_comment() + "\n")
 
-
     def generate_free_code(self):
         if self.type == "String" and \
            self.occurrence not in [OCCURRENCE__REQUIRED_LIST,
@@ -319,7 +298,6 @@ class Property(Member):
             else:
                 return "    esxVI_%s_Free(&item->%s);\n" % (self.type, self.name)
 
-
     def generate_validate_code(self, managed=False):
         if managed:
             macro = "ESX_VI__TEMPLATE__PROPERTY__MANAGED_REQUIRE"
@@ -334,7 +312,6 @@ class Property(Member):
         else:
             return ""
 
-
     def generate_deep_copy_code(self):
         if self.occurrence == OCCURRENCE__IGNORED:
             return "    /* FIXME: %s is currently ignored */\n" % self.name
@@ -351,7 +328,6 @@ class Property(Member):
             return "    ESX_VI__TEMPLATE__PROPERTY__DEEP_COPY(%s, %s)\n" \
                    % (self.type, self.name)
 
-
     def generate_serialize_code(self):
         if self.occurrence == OCCURRENCE__IGNORED:
             return "    /* FIXME: %s is currently ignored */\n" % self.name
@@ -366,7 +342,6 @@ class Property(Member):
             return "    ESX_VI__TEMPLATE__PROPERTY__SERIALIZE(%s, %s)\n" \
                    % (self.type, self.name)
 
-
     def generate_deserialize_code(self):
         if self.occurrence == OCCURRENCE__IGNORED:
             return "    ESX_VI__TEMPLATE__PROPERTY__DESERIALIZE_IGNORE(%s) /* FIXME */\n" \
@@ -382,7 +357,6 @@ class Property(Member):
             return "    ESX_VI__TEMPLATE__PROPERTY__DESERIALIZE(%s, %s)\n" \
                    % (self.type, self.name)
 
-
     def generate_lookup_code(self):
         if self.occurrence == OCCURRENCE__IGNORED:
             return "    ESX_VI__TEMPLATE__PROPERTY__CAST_FROM_ANY_TYPE_IGNORE(%s) /* FIXME */\n" \
@@ -398,7 +372,6 @@ class Property(Member):
             return "    ESX_VI__TEMPLATE__PROPERTY__CAST_FROM_ANY_TYPE(%s, %s)\n" \
                    % (self.type, self.name)
 
-
     def get_type_string(self):
         if self.type == "String" and \
            self.occurrence not in [OCCURRENCE__REQUIRED_LIST,
@@ -410,29 +383,24 @@ class Property(Member):
             return "esxVI_%s *" % self.type
 
 
-
 class Type:
     def __init__(self, kind, name):
         self.kind = kind
         self.name = name
 
-
     def generate_typedef(self):
         return "typedef %s _esxVI_%s esxVI_%s;\n" \
                % (self.kind, self.name, self.name)
 
-
     def generate_typeenum(self):
         return "    esxVI_Type_%s,\n" % self.name
 
-
     def generate_typetostring(self):
         string = "          case esxVI_Type_%s:\n" % self.name
         string += "            return \"%s\";\n\n" % self.name
 
         return string
 
-
     def generate_typefromstring(self):
         string =  "           if (STREQ(type, \"%s\"))\n" % self.name
         string += "               return esxVI_Type_%s;\n" % self.name
@@ -448,14 +416,12 @@ class GenericObject(Type):
     FEATURE__SERIALIZE    = (1 << 5)
     FEATURE__DESERIALIZE  = (1 << 6)
 
-
     def __init__(self, name, category, managed, generic_objects_by_name):
         Type.__init__(self, "struct", name)
         self.category = category
         self.managed = managed
         self.generic_objects_by_name = generic_objects_by_name
 
-
     def generate_comment(self):
         comment = separator
         comment += " * %s: %s\n" % (self.category, self.name)
@@ -480,7 +446,6 @@ class GenericObject(Type):
 
         return comment
 
-
     def generate_struct_members(self, add_banner=False, struct_gap=False):
         members = ""
 
@@ -503,7 +468,6 @@ class GenericObject(Type):
 
         return members
 
-
     def generate_dispatch(self, suffix, is_first=True):
         source = ""
 
@@ -523,7 +487,6 @@ class GenericObject(Type):
 
         return source
 
-
     def generate_free_code(self, add_banner=False):
         source = ""
 
@@ -549,7 +512,6 @@ class GenericObject(Type):
 
         return source
 
-
     def generate_validate_code(self, add_banner=False):
         source = ""
 
@@ -576,7 +538,6 @@ class GenericObject(Type):
         return source
 
 
-
 class Object(GenericObject):
     def __init__(self, name, extends, properties, features=0, extended_by=None):
         GenericObject.__init__(self, name, 'VI Object', False, objects_by_name)
@@ -589,7 +550,6 @@ class Object(GenericObject):
         if self.extended_by is not None:
             self.extended_by.sort()
 
-
     def generate_dynamic_cast_code(self, is_first=True):
         source = ""
 
@@ -609,7 +569,6 @@ class Object(GenericObject):
 
         return source
 
-
     def generate_deep_copy_code(self, add_banner=False):
         source = ""
 
@@ -635,7 +594,6 @@ class Object(GenericObject):
 
         return source
 
-
     def generate_serialize_code(self, add_banner=False):
         source = ""
 
@@ -654,7 +612,6 @@ class Object(GenericObject):
 
         return source
 
-
     def generate_deserialize_code(self, add_banner=False):
         source = ""
 
@@ -673,7 +630,6 @@ class Object(GenericObject):
 
         return source
 
-
     def generate_header(self):
         header = self.generate_comment()
 
@@ -754,7 +710,6 @@ class Object(GenericObject):
 
         return header
 
-
     def generate_source(self):
         source = separator
         source += " * VI Object: %s\n" % self.name
@@ -916,7 +871,6 @@ class Object(GenericObject):
         return source
 
 
-
 class ManagedObject(GenericObject):
     def __init__(self, name, extends, properties, features=0, extended_by=None):
         GenericObject.__init__(self, name, 'VI Managed Object', True,
@@ -929,7 +883,6 @@ class ManagedObject(GenericObject):
         if self.extended_by is not None:
             self.extended_by.sort()
 
-
     def generate_lookup_code1(self, add_banner=False):
         source = ""
 
@@ -955,7 +908,6 @@ class ManagedObject(GenericObject):
 
         return source
 
-
     def generate_lookup_code2(self, add_banner=False):
         source = ""
 
@@ -981,7 +933,6 @@ class ManagedObject(GenericObject):
 
         return source
 
-
     def generate_header(self):
         header = self.generate_comment()
 
@@ -1017,7 +968,6 @@ class ManagedObject(GenericObject):
 
         return header
 
-
     def generate_helper_header(self):
         # functions
         return (
@@ -1030,7 +980,6 @@ class ManagedObject(GenericObject):
             % {"name": self.name}
         )
 
-
     def generate_source(self):
         source = self.generate_comment()
 
@@ -1084,7 +1033,6 @@ class ManagedObject(GenericObject):
 
         return source
 
-
     def generate_helper_source(self):
         # lookup
         return (
@@ -1106,13 +1054,11 @@ class Enum(Type):
     FEATURE__SERIALIZE = (1 << 2)
     FEATURE__DESERIALIZE = (1 << 3)
 
-
     def __init__(self, name, values, features=0):
         Type.__init__(self, "enum", name)
         self.values = values
         self.features = features
 
-
     def generate_header(self):
         header = separator
         header += " * VI Enum: %s\n" % self.name
@@ -1145,7 +1091,6 @@ class Enum(Type):
 
         return header
 
-
     def generate_source(self):
         source = separator
         source += " * VI Enum: %s\n" % self.name
@@ -1183,18 +1128,15 @@ class Enum(Type):
         return source
 
 
-
 def report_error(message):
     print("error: " + message)
     sys.exit(1)
 
 
-
 def capitalize_first(string):
     return string[:1].upper() + string[1:]
 
 
-
 def parse_object(block):
     # expected format: [managed] object <name> [extends <name>]
     header_items = block[0][1].split()
@@ -1239,7 +1181,6 @@ def parse_object(block):
         return Object(name=name, extends=extends, properties=properties)
 
 
-
 def parse_enum(block):
     # expected format: enum <name>
     header_items = block[0][1].split()
@@ -1260,7 +1201,6 @@ def parse_enum(block):
     return Enum(name=name, values=values)
 
 
-
 def parse_method(block):
     # expected format: method <name> [returns <type> <occurrence>]
     header_items = block[0][1].split()
@@ -1298,7 +1238,6 @@ def parse_method(block):
     return Method(name=name, parameters=parameters, returns=returns)
 
 
-
 def is_known_type(type):
     return type in predefined_objects or \
            type in predefined_enums or \
@@ -1307,7 +1246,6 @@ def is_known_type(type):
            type in enums_by_name
 
 
-
 def open_and_print(filename):
     if filename.startswith("./"):
         print("  GEN      " + filename[2:])
@@ -1317,7 +1255,6 @@ def open_and_print(filename):
     return open(filename, "wt")
 
 
-
 predefined_enums = ["Boolean"]
 
 predefined_objects = ["AnyType",
@@ -1380,7 +1317,6 @@ additional_object_features = {
 removed_object_features = {}
 
 
-
 if "srcdir" in os.environ:
     input_filename = os.path.join(os.environ["srcdir"], "esx/esx_vi_generator.input")
     output_dirname = os.path.join(os.environ["srcdir"], "esx")
@@ -1389,7 +1325,6 @@ else:
     output_dirname = os.getcwd()
 
 
-
 types_typedef = open_and_print(os.path.join(output_dirname, "esx_vi_types.generated.typedef"))
 types_typeenum = open_and_print(os.path.join(output_dirname, "esx_vi_types.generated.typeenum"))
 types_typetostring = open_and_print(os.path.join(output_dirname, "esx_vi_types.generated.typetostring"))
@@ -1403,7 +1338,6 @@ helpers_header = open_and_print(os.path.join(output_dirname, "esx_vi.generated.h
 helpers_source = open_and_print(os.path.join(output_dirname, "esx_vi.generated.c"))
 
 
-
 number = 0
 objects_by_name = {}
 managed_objects_by_name = {}
@@ -1412,7 +1346,6 @@ methods_by_name = {}
 block = None
 
 
-
 # parse input file
 for line in open(input_filename, "rt").readlines():
     number += 1
@@ -1452,7 +1385,6 @@ for line in open(input_filename, "rt").readlines():
             block.append((number, line))
 
 
-
 for method in methods_by_name.values():
     # method parameter types must be serializable
     for parameter in method.parameters:
@@ -1492,7 +1424,6 @@ for method in methods_by_name.values():
                 objects_by_name[method.returns.type].features |= Object.FEATURE__LIST
 
 
-
 for enum in enums_by_name.values():
     # apply additional features
     if enum.name in additional_enum_features:
@@ -1502,7 +1433,6 @@ for enum in enums_by_name.values():
             enum.features |= Enum.FEATURE__DESERIALIZE
 
 
-
 for obj in objects_by_name.values():
     for property in obj.properties:
         if property.occurrence != OCCURRENCE__IGNORED and \
@@ -1554,7 +1484,6 @@ for obj in objects_by_name.values():
             extended_obj.extended_by.sort()
 
 
-
 for obj in objects_by_name.values():
     # if an object is a candidate (it is used directly as parameter or return
     # type or is a member of another object) and it is extended by another
@@ -1563,7 +1492,6 @@ for obj in objects_by_name.values():
         obj.features |= Object.FEATURE__DYNAMIC_CAST
 
 
-
 def propagate_feature(obj, feature):
     global features_have_changed
 
@@ -1593,7 +1521,6 @@ def propagate_feature(obj, feature):
                 propagate_feature(objects_by_name[property.type], feature)
 
 
-
 def inherit_features(obj):
     global features_have_changed
 
@@ -1617,7 +1544,6 @@ def inherit_features(obj):
             inherit_features(objects_by_name[extended_by])
 
 
-
 # there are two directions to spread features:
 # 1) up and down the inheritance chain
 # 2) from object types to their member property types
@@ -1637,7 +1563,6 @@ while features_have_changed:
         inherit_features(obj)
 
 
-
 for obj in managed_objects_by_name.values():
     for property in obj.properties:
         if property.occurrence != OCCURRENCE__IGNORED and \
@@ -1661,7 +1586,6 @@ for obj in managed_objects_by_name.values():
             extended_obj.extended_by.sort()
 
 
-
 notice = "/* Generated by esx_vi_generator.py */\n\n\n\n"
 
 types_typedef.write(notice)
@@ -1677,7 +1601,6 @@ helpers_header.write(notice)
 helpers_source.write(notice)
 
 
-
 # output enums
 types_typedef.write(separator +
                     " * VI Enums\n" +
@@ -1694,7 +1617,6 @@ for name in names:
     types_source.write(enums_by_name[name].generate_source())
 
 
-
 # output objects
 types_typedef.write("\n\n\n" +
                     separator +
@@ -1715,7 +1637,6 @@ for name in names:
     types_source.write(objects_by_name[name].generate_source())
 
 
-
 # output managed objects
 types_typedef.write("\n\n\n" +
                     separator +
@@ -1736,7 +1657,6 @@ for name in names:
     types_source.write(managed_objects_by_name[name].generate_source())
 
 
-
 # output methods
 names = sorted(methods_by_name.keys())
 
@@ -1755,7 +1675,6 @@ for name in names:
     methods_macro.write(string)
 
 
-
 # output helpers
 names = sorted(managed_objects_by_name.keys())
 
diff --git a/src/hyperv/hyperv_wmi_generator.py b/src/hyperv/hyperv_wmi_generator.py
index 4f486913bd..64a198a12c 100755
--- a/src/hyperv/hyperv_wmi_generator.py
+++ b/src/hyperv/hyperv_wmi_generator.py
@@ -30,6 +30,7 @@ separator = "/*" + ("*" * 50) + "*\n"
 wmi_version_separator = "/"
 wmi_classes_by_name = {}
 
+
 class WmiClass:
     """Represents WMI class and provides methods to generate C code.
 
@@ -49,7 +50,6 @@ class WmiClass:
         self.versions = versions if versions else list()
         self.common = None
 
-
     def prepare(self):
         """Prepares the class for code generation
 
@@ -73,7 +73,6 @@ class WmiClass:
         # are in the same order - to ensure C struct member alignment
         self._align_property_members()
 
-
     def generate_classes_header(self):
         """Generate C header code and return it as string
 
@@ -102,7 +101,6 @@ class WmiClass:
 
         return header
 
-
     def generate_classes_source(self):
         """Returns a C code string defining wsman data structs
 
@@ -132,13 +130,11 @@ class WmiClass:
             source += '    { "", "", 0 },\n' # null terminated
             source += '};\n\n'
 
-
         source += self._define_WmiInfo_struct()
         source += "\n\n"
 
         return source
 
-
     def generate_classes_typedef(self):
         """Returns C string for typdefs"""
 
@@ -152,8 +148,6 @@ class WmiClass:
 
         return typedef
 
-
-
     def _declare_data_structs(self):
         """Returns string C code declaring data structs.
 
@@ -184,7 +178,6 @@ class WmiClass:
 
         return header
 
-
     def _declare_hypervObject_struct(self):
         """Return string for C code declaring hypervObject instance"""
 
@@ -211,7 +204,6 @@ class WmiClass:
 
         return header
 
-
     def _define_WmiInfo_struct(self):
         """Return string for C code defining *_WmiInfo struct
 
@@ -241,7 +233,6 @@ class WmiClass:
 
         return source
 
-
     def _align_property_members(self):
         """Identifies common properties in all class versions.
 
@@ -308,7 +299,6 @@ class WmiClass:
             self.common.append(x[0])
 
 
-
 class ClassUriInfo:
     """Prepares URI information needed for wsman requests."""
 
@@ -328,7 +318,6 @@ class ClassUriInfo:
         self.resourceUri = "%s/%s" % (baseUri, wmi_name)
 
 
-
 class WmiClassVersion:
     """Represents specific version of WMI class."""
 
@@ -339,7 +328,6 @@ class WmiClassVersion:
         self.uri_info = uri_info
 
 
-
 class Property:
     typemap = {
         "boolean": "BOOL",
@@ -359,7 +347,6 @@ class Property:
         "uint64": "UINT64"
     }
 
-
     def __init__(self, type, name, is_array):
         if type not in Property.typemap:
             report_error("unhandled property type %s" % type)
@@ -368,7 +355,6 @@ class Property:
         self.name = name
         self.is_array = is_array
 
-
     def generate_classes_header(self):
         if self.is_array:
             return "    XML_TYPE_DYN_ARRAY %s;\n" % self.name
@@ -376,7 +362,6 @@ class Property:
             return "    XML_TYPE_%s %s;\n" \
                    % (Property.typemap[self.type], self.name)
 
-
     def generate_classes_source(self, class_name):
         if self.is_array:
             return "    SER_NS_DYN_ARRAY(%s_RESOURCE_URI, \"%s\", 0, 0, %s),\n" \
@@ -385,12 +370,10 @@ class Property:
             return "    SER_NS_%s(%s_RESOURCE_URI, \"%s\", 1),\n" \
                    % (Property.typemap[self.type], class_name.upper(), self.name)
 
-
     def generate_typemap(self):
         return '    { "%s", "%s", %s },\n' % (self.name, self.type.lower(), str(self.is_array).lower())
 
 
-
 def open_and_print(filename):
     if filename.startswith("./"):
         print("  GEN      " + filename[2:])
@@ -400,13 +383,11 @@ def open_and_print(filename):
     return open(filename, "wt")
 
 
-
 def report_error(message):
     print("error: " + message)
     sys.exit(1)
 
 
-
 def parse_class(block, number):
     # expected format: class <name>
     header_items = block[0][1].split()
@@ -452,7 +433,6 @@ def parse_class(block, number):
         wmi_classes_by_name[wmi_name] = WmiClass(wmi_name, [cls])
 
 
-
 def main():
     if "srcdir" in os.environ:
         input_filename = os.path.join(os.environ["srcdir"], "hyperv/hyperv_wmi_generator.input")
@@ -513,6 +493,5 @@ def main():
         classes_source.write(cls.generate_classes_source())
 
 
-
 if __name__ == "__main__":
     main()
diff --git a/tests/cputestdata/cpu-cpuid.py b/tests/cputestdata/cpu-cpuid.py
index ae3cf5996a..40b6c19c23 100755
--- a/tests/cputestdata/cpu-cpuid.py
+++ b/tests/cputestdata/cpu-cpuid.py
@@ -5,6 +5,7 @@ import sys
 import json
 import xmltodict
 
+
 def checkCPUIDFeature(cpuData, feature):
     eax_in = feature["eax_in"]
     ecx_in = feature["ecx_in"]
-- 
2.21.0




More information about the libvir-list mailing list