summaryrefslogtreecommitdiffstats
path: root/util/cmake/json_parser.py
diff options
context:
space:
mode:
authorCristian Maureira-Fredes <cristian.maureira-fredes@qt.io>2019-09-17 00:11:17 +0200
committerCristian Maureira-Fredes <cristian.maureira-fredes@qt.io>2019-09-18 12:00:26 +0000
commit91634c3c9b8d4f68f0ebd2ac76a8b5b79e4b4c94 (patch)
treedc1913a6a30f886813901f9584221c1f37fa3c22 /util/cmake/json_parser.py
parentc1cf305be0f1f529b96a06dc70ce5ee7273006ef (diff)
Improve styling of util/cmake scripts
flake8 was used to evaluate the file, with a couple of exeptions: E501,E266,W503 black was used to reformat the code automatically The changes were: * Added a README that explains how to use pipenv and pip, * Remove unnecessary return statements, * Remove '\' from the end of the lines, * Use f-strings (>= 3.6) since we are requiring Python 3.7, * Commenting unused variables, * Adding assert when Python >= 3.7 is not being used, * Wrapping long lines to 100 (Qt Style), * Re-factoring some lines, * Re-ordering imports, * Naming `except` for sympy (SympifyError, TypeError) Change-Id: Ie05f754e7d8ee4bf427117c58e0eb1b903202933 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'util/cmake/json_parser.py')
-rw-r--r--util/cmake/json_parser.py31
1 files changed, 16 insertions, 15 deletions
diff --git a/util/cmake/json_parser.py b/util/cmake/json_parser.py
index 6ead008f08..36e8cee37f 100644
--- a/util/cmake/json_parser.py
+++ b/util/cmake/json_parser.py
@@ -31,6 +31,7 @@ import pyparsing as pp
import json
import re
from helper import _set_up_py_parsing_nicer_debug_output
+
_set_up_py_parsing_nicer_debug_output(pp)
@@ -41,7 +42,7 @@ class QMakeSpecificJSONParser:
def create_py_parsing_grammar(self):
# Keep around all whitespace.
- pp.ParserElement.setDefaultWhitespaceChars('')
+ pp.ParserElement.setDefaultWhitespaceChars("")
def add_element(name: str, value: pp.ParserElement):
nonlocal self
@@ -57,44 +58,44 @@ class QMakeSpecificJSONParser:
# skip to the next quote, and repeat that until the end of the
# file.
- EOF = add_element('EOF', pp.StringEnd())
- SkipToQuote = add_element('SkipToQuote', pp.SkipTo('"'))
- SkipToEOF = add_element('SkipToEOF', pp.SkipTo(EOF))
+ EOF = add_element("EOF", pp.StringEnd())
+ SkipToQuote = add_element("SkipToQuote", pp.SkipTo('"'))
+ SkipToEOF = add_element("SkipToEOF", pp.SkipTo(EOF))
def remove_newlines_and_whitespace_in_quoted_string(tokens):
first_string = tokens[0]
- replaced_string = re.sub(r'\n[ ]*', ' ', first_string)
+ replaced_string = re.sub(r"\n[ ]*", " ", first_string)
return replaced_string
- QuotedString = add_element('QuotedString', pp.QuotedString(quoteChar='"',
- multiline=True,
- unquoteResults=False))
+ QuotedString = add_element(
+ "QuotedString", pp.QuotedString(quoteChar='"', multiline=True, unquoteResults=False)
+ )
QuotedString.setParseAction(remove_newlines_and_whitespace_in_quoted_string)
- QuotedTerm = add_element('QuotedTerm', pp.Optional(SkipToQuote) + QuotedString)
- Grammar = add_element('Grammar', pp.OneOrMore(QuotedTerm) + SkipToEOF)
+ QuotedTerm = add_element("QuotedTerm", pp.Optional(SkipToQuote) + QuotedString)
+ Grammar = add_element("Grammar", pp.OneOrMore(QuotedTerm) + SkipToEOF)
return Grammar
def parse_file_using_py_parsing(self, file: str):
- print('Pre processing "{}" using py parsing to remove incorrect newlines.'.format(file))
+ print(f'Pre processing "{file}" using py parsing to remove incorrect newlines.')
try:
- with open(file, 'r') as file_fd:
+ with open(file, "r") as file_fd:
contents = file_fd.read()
parser_result = self.grammar.parseString(contents, parseAll=True)
token_list = parser_result.asList()
- joined_string = ''.join(token_list)
+ joined_string = "".join(token_list)
return joined_string
except pp.ParseException as pe:
print(pe.line)
- print(' '*(pe.col-1) + '^')
+ print(" " * (pe.col - 1) + "^")
print(pe)
raise pe
def parse(self, file: str):
pre_processed_string = self.parse_file_using_py_parsing(file)
- print('Parsing "{}" using json.loads().'.format(file))
+ print(f'Parsing "{file}" using json.loads().')
json_parsed = json.loads(pre_processed_string)
return json_parsed