On Sat, Mar 17, 2018 at 02:23:27PM +0000, Radostin Stoyanov wrote: > Improve readability by reducing the complexity and length of > conditional statements. > > Example: The following condition: > > if (o >= 97 and o <= 122) or > (o >= 65 and o <= 90) or > (o >= 48 and o <= 57) or > (" \t(){}:;,+-*/%&!|[]=><".find(line[i]) == -1): > > Will be True for every character that is not in string: > " \t(){}:;,+-*/%&!|[]=><" > > Signed-off-by: Radostin Stoyanov <rstoyanov1@xxxxxxxxx> > --- > docs/apibuild.py | 33 ++++++++++----------------------- > 1 file changed, 10 insertions(+), 23 deletions(-) > > diff --git a/docs/apibuild.py b/docs/apibuild.py > index 644d96f69..1b9401226 100755 > --- a/docs/apibuild.py > +++ b/docs/apibuild.py > @@ -564,28 +564,23 @@ class CLexer: > if line[i] == ' ' or line[i] == '\t': > i = i + 1 > continue > - o = ord(line[i]) > - if (o >= 97 and o <= 122) or (o >= 65 and o <= 90) or \ > - (o >= 48 and o <= 57): > + if re.match(r"[a-zA-Z0-9]", line[i]): Why not just use isalnum() function here - it will be massively faster than a regex match. > s = i > while i < l: > - o = ord(line[i]) > - if (o >= 97 and o <= 122) or (o >= 65 and o <= 90) or \ > - (o >= 48 and o <= 57) or \ > - (" \t(){}:;,+-*/%&!|[]=><".find(line[i]) == -1): > + if line[i] not in " \t(){}:;,+-*/%&!|[]=><": > i = i + 1 > else: > break > self.tokens.append(('name', line[s:i])) > continue > - if "(){}:;,[]".find(line[i]) != -1: > + if line[i] in "(){}:;,[]": > # if line[i] == '(' or line[i] == ')' or line[i] == '{' or \ > # line[i] == '}' or line[i] == ':' or line[i] == ';' or \ > # line[i] == ',' or line[i] == '[' or line[i] == ']': > self.tokens.append(('sep', line[i])) > i = i + 1 > continue > - if "+-*><=/%&!|.".find(line[i]) != -1: > + if line[i] in "+-*><=/%&!|.": > # if line[i] == '+' or line[i] == '-' or line[i] == '*' or \ > # line[i] == '>' or line[i] == '<' or line[i] == '=' or \ > # line[i] == '/' or line[i] == '%' or line[i] == '&' or \ > @@ -597,8 +592,7 @@ class CLexer: > continue > > j = i + 1 > - if j < l and ( > - "+-*><=/%&!|".find(line[j]) != -1): > + if j < l and line[j] in "+-*><=/%&!|": > # line[j] == '+' or line[j] == '-' or line[j] == '*' or \ > # line[j] == '>' or line[j] == '<' or line[j] == '=' or \ > # line[j] == '/' or line[j] == '%' or line[j] == '&' or \ > @@ -611,10 +605,7 @@ class CLexer: > continue > s = i > while i < l: > - o = ord(line[i]) > - if (o >= 97 and o <= 122) or (o >= 65 and o <= 90) or \ > - (o >= 48 and o <= 57) or \ > - (" \t(){}:;,+-*/%&!|[]=><".find(line[i]) == -1): > + if line[i] not in " \t(){}:;,+-*/%&!|[]=><": > # line[i] != ' ' and line[i] != '\t' and > # line[i] != '(' and line[i] != ')' and > # line[i] != '{' and line[i] != '}' and > @@ -1555,10 +1546,8 @@ class CParser: > if token is None: > return token > > - while token[0] == "name" and ( > - token[1] == "const" or \ > - token[1] == "unsigned" or \ > - token[1] == "signed"): > + while (token[0] == "name" and > + token[1] in ["const", "unsigned", "signed"]): > if self.type == "": > self.type = token[1] > else: > @@ -2402,8 +2391,7 @@ class docBuilder: > pass > typ = sorted(funcs.keys()) > for type in typ: > - if type == '' or type == 'void' or type == "int" or \ > - type == "char *" or type == "const char *": > + if type in ['', "void", "int", "char *", "const char *"]: > continue > output.write(" <type name='%s'>\n" % (type)) > ids = funcs[type] > @@ -2431,8 +2419,7 @@ class docBuilder: > pass > typ = sorted(funcs.keys()) > for type in typ: > - if type == '' or type == 'void' or type == "int" or \ > - type == "char *" or type == "const char *": > + if type in ['', "void", "int", "char *", "const char *"]: > continue > output.write(" <type name='%s'>\n" % (type)) > ids = sorted(funcs[type]) Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list