diff options
author | ptmcg <ptmcg@austin.rr.com> | 2020-04-26 10:33:12 -0500 |
---|---|---|
committer | ptmcg <ptmcg@austin.rr.com> | 2020-04-26 10:33:12 -0500 |
commit | 203fa36d7ae6b79344e4bf13531b77c09f313793 (patch) | |
tree | 443459f498f38b97618344c6f707eeaa117cf670 /examples/chemicalFormulas.py | |
parent | 813ba3bed433a96e02d82cad2e2940a6850d96a5 (diff) | |
download | pyparsing-git-203fa36d7ae6b79344e4bf13531b77c09f313793.tar.gz |
change some lambdas to explicit methods for clarity (see discussion in #207); deleted duplicated examples (commit *all* changes this time)
Diffstat (limited to 'examples/chemicalFormulas.py')
-rw-r--r-- | examples/chemicalFormulas.py | 36 |
1 files changed, 27 insertions, 9 deletions
diff --git a/examples/chemicalFormulas.py b/examples/chemicalFormulas.py index f4725ed..f7c7d14 100644 --- a/examples/chemicalFormulas.py +++ b/examples/chemicalFormulas.py @@ -26,7 +26,11 @@ element = pp.Word(pp.alphas.upper(), pp.alphas.lower(), max=2) elementRef = pp.Group(element + pp.Optional(pp.Word(digits), default="1"))
formula = elementRef[...]
-fn = lambda elemList: sum(atomicWeight[elem] * int(qty) for elem, qty in elemList)
+
+def sum_atomic_weights(element_list):
+ return sum(atomicWeight[elem] * int(qty) for elem, qty in element_list)
+
+
formula.runTests(
"""\
H2O
@@ -34,7 +38,9 @@ formula.runTests( NaCl
""",
fullDump=False,
- postParse=lambda _, tokens: "Molecular weight: {}".format(fn(tokens)),
+ postParse=lambda _, tokens: "Molecular weight: {}".format(
+ sum_atomic_weights(tokens)
+ ),
)
print()
@@ -44,9 +50,11 @@ elementRef = pp.Group( )
formula = elementRef[...]
-fn = lambda elemList: sum(
- atomicWeight[elem.symbol] * int(elem.qty) for elem in elemList
-)
+
+def sum_atomic_weights_by_results_name(element_list):
+ return sum(atomicWeight[elem.symbol] * int(elem.qty) for elem in element_list)
+
+
formula.runTests(
"""\
H2O
@@ -54,7 +62,9 @@ formula.runTests( NaCl
""",
fullDump=False,
- postParse=lambda _, tokens: "Molecular weight: {}".format(fn(tokens)),
+ postParse=lambda _, tokens: "Molecular weight: {}".format(
+ sum_atomic_weights_by_results_name(tokens)
+ ),
)
print()
@@ -63,7 +73,11 @@ integer = pp.Word(digits).setParseAction(lambda t: int(t[0])) elementRef = pp.Group(element("symbol") + pp.Optional(integer, default=1)("qty"))
formula = elementRef[...]
-fn = lambda elemList: sum(atomicWeight[elem.symbol] * elem.qty for elem in elemList)
+
+def sum_atomic_weights_by_results_name_with_converted_ints(element_list):
+ return sum(atomicWeight[elem.symbol] * int(elem.qty) for elem in element_list)
+
+
formula.runTests(
"""\
H2O
@@ -71,7 +85,9 @@ formula.runTests( NaCl
""",
fullDump=False,
- postParse=lambda _, tokens: "Molecular weight: {}".format(fn(tokens)),
+ postParse=lambda _, tokens: "Molecular weight: {}".format(
+ sum_atomic_weights_by_results_name_with_converted_ints(tokens)
+ ),
)
print()
@@ -98,6 +114,8 @@ formula.runTests( NaCl
""",
fullDump=False,
- postParse=lambda _, tokens: "Molecular weight: {}".format(fn(tokens)),
+ postParse=lambda _, tokens: "Molecular weight: {}".format(
+ sum_atomic_weights_by_results_name_with_converted_ints(tokens)
+ ),
)
print()
|