From 53d1b4a6f48a53c4c4ec4ac7031362b691c0366d Mon Sep 17 00:00:00 2001 From: Jon Dufresne Date: Thu, 31 Oct 2019 21:10:28 -0700 Subject: Blacken the project (#141) --- examples/excelExpr.py | 85 +++++++++++++++++++++++++++++++++------------------ 1 file changed, 55 insertions(+), 30 deletions(-) (limited to 'examples/excelExpr.py') diff --git a/examples/excelExpr.py b/examples/excelExpr.py index 86237ef..cea2eea 100644 --- a/examples/excelExpr.py +++ b/examples/excelExpr.py @@ -4,36 +4,64 @@ # # A partial implementation of a parser of Excel formula expressions. # -from pyparsing import (CaselessKeyword, Suppress, Word, alphas, - alphanums, nums, Optional, Group, oneOf, Forward, - infixNotation, opAssoc, dblQuotedString, delimitedList, - Combine, Literal, QuotedString, ParserElement, pyparsing_common as ppc) +from pyparsing import ( + CaselessKeyword, + Suppress, + Word, + alphas, + alphanums, + nums, + Optional, + Group, + oneOf, + Forward, + infixNotation, + opAssoc, + dblQuotedString, + delimitedList, + Combine, + Literal, + QuotedString, + ParserElement, + pyparsing_common as ppc, +) + ParserElement.enablePackrat() -EQ,LPAR,RPAR,COLON,COMMA = map(Suppress, '=():,') -EXCL, DOLLAR = map(Literal,"!$") -sheetRef = Word(alphas, alphanums) | QuotedString("'",escQuote="''") -colRef = Optional(DOLLAR) + Word(alphas,max=2) +EQ, LPAR, RPAR, COLON, COMMA = map(Suppress, "=():,") +EXCL, DOLLAR = map(Literal, "!$") +sheetRef = Word(alphas, alphanums) | QuotedString("'", escQuote="''") +colRef = Optional(DOLLAR) + Word(alphas, max=2) rowRef = Optional(DOLLAR) + Word(nums) -cellRef = Combine(Group(Optional(sheetRef + EXCL)("sheet") + colRef("col") + - rowRef("row"))) +cellRef = Combine( + Group(Optional(sheetRef + EXCL)("sheet") + colRef("col") + rowRef("row")) +) -cellRange = (Group(cellRef("start") + COLON + cellRef("end"))("range") - | cellRef | Word(alphas,alphanums)) +cellRange = ( + Group(cellRef("start") + COLON + cellRef("end"))("range") + | cellRef + | Word(alphas, alphanums) +) expr = Forward() COMPARISON_OP = oneOf("< = > >= <= != <>") condExpr = expr + COMPARISON_OP + expr -ifFunc = (CaselessKeyword("if") - - LPAR - + Group(condExpr)("condition") - + COMMA + Group(expr)("if_true") - + COMMA + Group(expr)("if_false") - + RPAR) +ifFunc = ( + CaselessKeyword("if") + - LPAR + + Group(condExpr)("condition") + + COMMA + + Group(expr)("if_true") + + COMMA + + Group(expr)("if_false") + + RPAR +) -statFunc = lambda name : Group(CaselessKeyword(name) + Group(LPAR + delimitedList(expr) + RPAR)) +statFunc = lambda name: Group( + CaselessKeyword(name) + Group(LPAR + delimitedList(expr) + RPAR) +) sumFunc = statFunc("sum") minFunc = statFunc("min") maxFunc = statFunc("max") @@ -44,22 +72,18 @@ multOp = oneOf("* /") addOp = oneOf("+ -") numericLiteral = ppc.number operand = numericLiteral | funcCall | cellRange | cellRef -arithExpr = infixNotation(operand, - [ - (multOp, 2, opAssoc.LEFT), - (addOp, 2, opAssoc.LEFT), - ]) +arithExpr = infixNotation( + operand, [(multOp, 2, opAssoc.LEFT), (addOp, 2, opAssoc.LEFT),] +) textOperand = dblQuotedString | cellRef -textExpr = infixNotation(textOperand, - [ - ('&', 2, opAssoc.LEFT), - ]) +textExpr = infixNotation(textOperand, [("&", 2, opAssoc.LEFT),]) expr << (arithExpr | textExpr) -(EQ + expr).runTests("""\ +(EQ + expr).runTests( + """\ =3*A7+5 =3*Sheet1!$A$7+5 =3*'Sheet 1'!$A$7+5" @@ -67,4 +91,5 @@ expr << (arithExpr | textExpr) =if(Sum(A1:A25)>42,Min(B1:B25),if(Sum(C1:C25)>3.14, (Min(C1:C25)+3)*18,Max(B1:B25))) =sum(a1:a25,10,min(b1,c2,d3)) =if("T"&a2="TTime", "Ready", "Not ready") -""") +""" +) -- cgit v1.2.1