Mock Version: 1.2.17 ENTER ['do'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target noarch --nodeps /builddir/build/SPECS/python3-pyparsing.spec'], chrootPath='/var/lib/mock/epel-1-armhfp-13c309a2df656ac4de7e526470c62bfca771023b/root'shell=FalseprintOutput=Falseenv={'LANG': 'en_US.UTF-8', 'TERM': 'vt100', 'SHELL': '/bin/bash', 'PROMPT_COMMAND': 'printf "\x1b]0;\x07"', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'HOME': '/builddir', 'HOSTNAME': 'mock'}gid=135user='mockbuild'timeout=0logger=uid=996) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target noarch --nodeps /builddir/build/SPECS/python3-pyparsing.spec'] with env {'LANG': 'en_US.UTF-8', 'TERM': 'vt100', 'SHELL': '/bin/bash', 'PROMPT_COMMAND': 'printf "\x1b]0;\x07"', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'HOME': '/builddir', 'HOSTNAME': 'mock'} and shell False Building target platforms: noarch Building for target noarch Wrote: /builddir/build/SRPMS/python3-pyparsing-2.4.0-1.el7.src.rpm Child return code was: 0 ENTER ['do'](['bash', '--login', '-c', u'/usr/bin/rpmbuild -bb --target noarch --nodeps /builddir/build/SPECS/python3-pyparsing.spec'], chrootPath='/var/lib/mock/epel-1-armhfp-13c309a2df656ac4de7e526470c62bfca771023b/root'shell=Falseuid=996env={'LANG': 'en_US.UTF-8', 'TERM': 'vt100', 'SHELL': '/bin/bash', 'PROMPT_COMMAND': 'printf "\x1b]0;\x07"', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'HOME': '/builddir', 'HOSTNAME': 'mock'}gid=135user='mockbuild'timeout=0private_network=Truelogger=printOutput=False) Executing command: ['bash', '--login', '-c', u'/usr/bin/rpmbuild -bb --target noarch --nodeps /builddir/build/SPECS/python3-pyparsing.spec'] with env {'LANG': 'en_US.UTF-8', 'TERM': 'vt100', 'SHELL': '/bin/bash', 'PROMPT_COMMAND': 'printf "\x1b]0;\x07"', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'HOME': '/builddir', 'HOSTNAME': 'mock'} and shell False Building target platforms: noarch Building for target noarch Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.5wTmfm + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf pyparsing-pyparsing_2.4.0 + /usr/bin/gzip -dc /builddir/build/SOURCES/pyparsing-pyparsing_2.4.0.tar.gz + /usr/bin/tar -xf - + STATUS=0 + '[' 0 -ne 0 ']' + cd pyparsing-pyparsing_2.4.0 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + find examples -name '*.dfm' -or -name '*.py' -or -name '*.g' -or -name '*.h' -or -name '*.ics' -or -name '*.ini' + xargs dos2unix -k CHANGES LICENSE docs/HowToUsePyparsing.rst dos2unix: converting file CHANGES to Unix format ... dos2unix: converting file LICENSE to Unix format ... dos2unix: converting file docs/HowToUsePyparsing.rst to Unix format ... dos2unix: converting file examples/LAparser.py to Unix format ... dos2unix: converting file examples/httpServerLogParser.py to Unix format ... dos2unix: converting file examples/datetimeParseActions.py to Unix format ... dos2unix: converting file examples/sql2dot.py to Unix format ... dos2unix: converting file examples/urlExtractor.py to Unix format ... dos2unix: converting file examples/antlr_grammar_tests.py to Unix format ... dos2unix: converting file examples/dfmparse.py to Unix format ... dos2unix: converting file examples/test_bibparse.py to Unix format ... dos2unix: converting file examples/searchParserAppDemo.py to Unix format ... dos2unix: converting file examples/shapes.py to Unix format ... dos2unix: converting file examples/chemicalFormulas.py to Unix format ... dos2unix: converting file examples/greetingInKorean.py to Unix format ... dos2unix: converting file examples/protobuf_parser.py to Unix format ... dos2unix: converting file examples/indentedGrammarExample.py to Unix format ... dos2unix: converting file examples/mozilla.ics to Unix format ... dos2unix: converting file examples/numerics.py to Unix format ... dos2unix: converting file examples/greetingInGreek.py to Unix format ... dos2unix: converting file examples/listAllMatches.py to Unix format ... dos2unix: converting file examples/select_parser.py to Unix format ... dos2unix: converting file examples/ebnf.py to Unix format ... dos2unix: converting file examples/btpyparse.py to Unix format ... dos2unix: converting file examples/SingleForm.dfm to Unix format ... dos2unix: converting file examples/deltaTime.py to Unix format ... dos2unix: converting file examples/eval_arith.py to Unix format ... dos2unix: converting file examples/rosettacode.py to Unix format ... dos2unix: converting file examples/htmlStripper.py to Unix format ... dos2unix: converting file examples/parseListString.py to Unix format ... dos2unix: converting file examples/scanExamples.py to Unix format ... dos2unix: converting file examples/linenoExample.py to Unix format ... dos2unix: converting file examples/statemachine/statemachine.py to Unix format ... dos2unix: converting file examples/statemachine/documentSignoffDemo.py to Unix format ... dos2unix: converting file examples/statemachine/libraryBookDemo.py to Unix format ... dos2unix: converting file examples/statemachine/trafficLightDemo.py to Unix format ... dos2unix: converting file examples/jsonParser.py to Unix format ... dos2unix: converting file examples/readJson.py to Unix format ... dos2unix: converting file examples/rangeCheck.py to Unix format ... dos2unix: converting file examples/SimpleCalc.py to Unix format ... dos2unix: converting file examples/commasep.py to Unix format ... dos2unix: converting file examples/parseTabularData.py to Unix format ... dos2unix: converting file examples/builtin_parse_action_demo.py to Unix format ... dos2unix: converting file examples/oc.py to Unix format ... dos2unix: converting file examples/include_preprocessor.py to Unix format ... dos2unix: converting file examples/list1.py to Unix format ... dos2unix: converting file examples/invRegex.py to Unix format ... dos2unix: converting file examples/TAP.py to Unix format ... dos2unix: converting file examples/cpp_enum_parser.py to Unix format ... dos2unix: converting file examples/parseResultsSumExample.py to Unix format ... dos2unix: converting file examples/simpleWiki.py to Unix format ... dos2unix: converting file examples/excelExpr.py to Unix format ... dos2unix: converting file examples/htmlTableParser.py to Unix format ... dos2unix: converting file examples/removeLineBreaks.py to Unix format ... dos2unix: converting file examples/dhcpd_leases_parser.py to Unix format ... dos2unix: converting file examples/wordsToNum.py to Unix format ... dos2unix: converting file examples/verilogParse.py to Unix format ... dos2unix: converting file examples/partial_gene_match.py to Unix format ... dos2unix: converting file examples/parsePythonValue.py to Unix format ... dos2unix: converting file examples/fourFn.py to Unix format ... dos2unix: converting file examples/ebnftest.py to Unix format ... dos2unix: converting file examples/simpleBool.py to Unix format ... dos2unix: converting file examples/groupUsingListAllMatches.py to Unix format ... dos2unix: converting file examples/searchparser.py to Unix format ... dos2unix: converting file examples/idlParse.py to Unix format ... dos2unix: converting file examples/romanNumerals.py to Unix format ... dos2unix: converting file examples/stackish.py to Unix format ... dos2unix: converting file examples/configParse.py to Unix format ... dos2unix: converting file examples/simpleArith.py to Unix format ... dos2unix: converting file examples/__init__.py to Unix format ... dos2unix: converting file examples/sparser.py to Unix format ... dos2unix: converting file examples/simpleSQL.py to Unix format ... dos2unix: converting file examples/holaMundo.py to Unix format ... dos2unix: converting file examples/greeting.py to Unix format ... dos2unix: converting file examples/adventureEngine.py to Unix format ... dos2unix: converting file examples/position.py to Unix format ... dos2unix: converting file examples/antlr_grammar.py to Unix format ... dos2unix: converting file examples/gen_ctypes.py to Unix format ... dos2unix: converting file examples/snmp_api.h to Unix format ... dos2unix: converting file examples/Setup.ini to Unix format ... dos2unix: converting file examples/apicheck.py to Unix format ... dos2unix: converting file examples/macroExpander.py to Unix format ... dos2unix: converting file examples/urlExtractorNew.py to Unix format ... dos2unix: converting file examples/mozillaCalendarParser.py to Unix format ... dos2unix: converting file examples/dictExample2.py to Unix format ... dos2unix: converting file examples/pymicko.py to Unix format ... dos2unix: converting file examples/getNTPserversNew.py to Unix format ... dos2unix: converting file examples/javascript_grammar.g to Unix format ... dos2unix: converting file examples/lucene_grammar.py to Unix format ... dos2unix: converting file examples/decaf_parser.py to Unix format ... dos2unix: converting file examples/pgn.py to Unix format ... dos2unix: converting file examples/matchPreviousDemo.py to Unix format ... dos2unix: converting file examples/pythonGrammarParser.py to Unix format ... dos2unix: converting file examples/sexpParser.py to Unix format ... dos2unix: converting file examples/withAttribute.py to Unix format ... dos2unix: converting file examples/cLibHeader.py to Unix format ... dos2unix: converting file examples/dictExample.py to Unix format ... dos2unix: converting file examples/AcManForm.dfm to Unix format ... dos2unix: converting file examples/nested.py to Unix format ... + find examples -name '*.py' + xargs sed -i '1{s|^#!/usr/bin\(/env \)\?python$|#!/usr/bin/python3.6|}' + sed -i /alabaster/d docs/conf.py + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.nmBkdx + umask 022 + cd /builddir/build/BUILD + cd pyparsing-pyparsing_2.4.0 + CFLAGS='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard' + /usr/bin/python3.6 setup.py build '--executable=/usr/bin/python3.6 -s' running build running build_py creating build creating build/lib copying pyparsing.py -> build/lib + sleep 1 + sphinx-build-3.6 -b html docs docs/html Making output directory... Running Sphinx v1.2.3 loading pickled environment... failed: [Errno 2] No such file or directory: '/builddir/build/BUILD/pyparsing-pyparsing_2.4.0/docs/html/.doctrees/environment.pickle' building [html]: targets for 5 source files that are out of date updating environment: 5 added, 0 changed, 0 removed reading sources... [ 20%] CODE_OF_CONDUCT reading sources... [ 40%] HowToUsePyparsing reading sources... [ 60%] index reading sources... [ 80%] modules reading sources... [100%] pyparsing /builddir/build/BUILD/pyparsing-pyparsing_2.4.0/docs/index.rst:10: ERROR: Error in "toctree" directive: unknown option: "caption". .. toctree:: :maxdepth: 2 :caption: Contents: HowToUsePyparsing modules CODE_OF_CONDUCT looking for now-outdated files... none found pickling environment... /builddir/build/BUILD/pyparsing-pyparsing_2.4.0/docs/pyparsing.rst:4: WARNING: invalid signature for autoclass ('pyparsing::pyparsing_unicode.\u05e2\u05b4\u05d1\u05e8\u05b4\u05d9\u05ea') /builddir/build/BUILD/pyparsing-pyparsing_2.4.0/docs/pyparsing.rst:4: WARNING: don't know which module to import for autodocumenting 'pyparsing::pyparsing_unicode.\u05e2\u05b4\u05d1\u05e8\u05b4\u05d9\u05ea' (try placing a "module" or "currentmodule" directive in the document, or giving an explicit module name) /builddir/build/BUILD/pyparsing-pyparsing_2.4.0/docs/pyparsing.rst:4: WARNING: invalid signature for autoclass ('pyparsing::pyparsing_unicode.\u0926\u0947\u0935\u0928\u093e\u0917\u0930\u0940') /builddir/build/BUILD/pyparsing-pyparsing_2.4.0/docs/pyparsing.rst:4: WARNING: don't know which module to import for autodocumenting 'pyparsing::pyparsing_unicode.\u0926\u0947\u0935\u0928\u093e\u0917\u0930\u0940' (try placing a "module" or "currentmodule" directive in the document, or giving an explicit module name) done checking consistency... done preparing documents... /builddir/build/BUILD/pyparsing-pyparsing_2.4.0/docs/CODE_OF_CONDUCT.rst:: WARNING: document isn't included in any toctree /builddir/build/BUILD/pyparsing-pyparsing_2.4.0/docs/HowToUsePyparsing.rst:: WARNING: document isn't included in any toctree /builddir/build/BUILD/pyparsing-pyparsing_2.4.0/docs/modules.rst:: WARNING: document isn't included in any toctree done writing output... [ 20%] CODE_OF_CONDUCT writing output... [ 40%] HowToUsePyparsing writing output... [ 60%] index writing output... [ 80%] modules writing output... [100%] pyparsing writing additional files... genindex py-modindex search copying static files... done copying extra files... done dumping search index... done dumping object inventory... done build succeeded, 8 warnings. + rm -rf docs/html/.buildinfo docs/html/.doctrees + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.FYaqyR + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch '!=' / ']' + rm -rf /builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch ++ dirname /builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch + cd pyparsing-pyparsing_2.4.0 + CFLAGS='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard' + /usr/bin/python3.6 setup.py install -O1 --skip-build --root /builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch running install running install_lib creating /builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch/usr creating /builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch/usr/lib creating /builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch/usr/lib/python3.6 creating /builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch/usr/lib/python3.6/site-packages copying build/lib/pyparsing.py -> /builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch/usr/lib/python3.6/site-packages byte-compiling /builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch/usr/lib/python3.6/site-packages/pyparsing.py to pyparsing.cpython-36.pyc writing byte-compilation script '/tmp/tmpdb62myu2.py' /usr/bin/python3.6 /tmp/tmpdb62myu2.py removing /tmp/tmpdb62myu2.py running install_egg_info running egg_info creating pyparsing.egg-info writing pyparsing.egg-info/PKG-INFO writing dependency_links to pyparsing.egg-info/dependency_links.txt writing top-level names to pyparsing.egg-info/top_level.txt writing manifest file 'pyparsing.egg-info/SOURCES.txt' reading manifest file 'pyparsing.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'HowToUsePyparsing.html' warning: no files found matching 'pyparsingClassDiagram.*' warning: no files found matching 'README.md' warning: no files found matching 'CODE_OF_CONDUCT.md' no previously-included directories found matching 'docs/_build/*' writing manifest file 'pyparsing.egg-info/SOURCES.txt' Copying pyparsing.egg-info to /builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch/usr/lib/python3.6/site-packages/pyparsing-2.4.0-py3.6.egg-info running install_scripts + /usr/lib/rpm/find-debuginfo.sh --strict-build-id -m --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 50000000 /builddir/build/BUILD/pyparsing-pyparsing_2.4.0 /usr/lib/rpm/sepdebugcrcfix: Updated 0 CRC32s, 0 CRC32s did match. find: 'debug': No such file or directory + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-compress + /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1 + /usr/lib/rpm/redhat/brp-python-hardlink + /usr/lib/rpm/redhat/brp-java-repack-jars Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.MgJ5U7 + umask 022 + cd /builddir/build/BUILD + cd pyparsing-pyparsing_2.4.0 + /usr/bin/python3.6 unitTests.py ..................................................................................................................................................................................................... ---------------------------------------------------------------------- Ran 197 tests in 79.859s OK Beginning test of pyparsing, version 2.4.0 Python version 3.6.6 (default, Apr 4 2019, 15:08:00) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] + /usr/bin/python3.6 simple_unit_tests.py ............. Simple match - Literal("xyz") ['xyz'] Simple match after skipping whitespace - Literal("xyz") ['xyz'] Simple fail - parse an empty string - Literal("xyz") ^ ParseException: Expected "xyz" (at char 0), (line:1, col:1) __main__.TestLiteral pyparsing.Literal - "xyz" Simple fail - parse a mismatching string - Literal("xyz") xyu ^ ParseException: Expected "xyz" (at char 0), (line:1, col:1) __main__.TestLiteral pyparsing.Literal - "xyz" Simple fail - parse a partially matching string - Literal("xyz") xy ^ ParseException: Expected "xyz" (at char 0), (line:1, col:1) __main__.TestLiteral pyparsing.Literal - "xyz" Fail - parse a partially matching string by matching individual letters - And({"x" "y" "z"}) xy ^ ParseException: Expected "z" (at char 2), (line:1, col:3) __main__.TestLiteral pyparsing.And - {"x" "y" "z"} pyparsing.Literal - "z" Match colors, converting to consistent case - OneOrMore({{'RED' | 'GREEN' | 'BLUE'}}...) ['RED', 'GREEN', 'BLUE', 'BLUE', 'GREEN', 'GREEN', 'RED'] Simple Word match - Word(W:(xy)) ['xxyxxyy'] Simple Word match of two separate Words - And({W:(x) W:(y)}) ['xxxxx', 'yy'] Simple Word match of two separate Words - implicitly skips whitespace - And({W:(x) W:(y)}) ['xxxxx', 'yy'] Parsing real numbers - fail, parsed numbers are in pieces - OneOrMore({{W:(0123...) "." W:(0123...)}}...) ['1', '.', '2', '2', '.', '3', '3', '.', '1416', '98', '.', '6'] Parsing real numbers - better, use Combine to combine multiple tokens into one - OneOrMore({Combine:({W:(0123...) "." W:(0123...)})}...) ['1.2', '2.3', '3.1416', '98.6'] Match several words - OneOrMore({{W:(x) | W:(y)}}...) ['xx', 'y', 'xx', 'yy', 'xx', 'y', 'x', 'y', 'xxx', 'y'] Match several words, skipping whitespace - OneOrMore({{W:(x) | W:(y)}}...) ['x', 'x', 'y', 'xx', 'y', 'y', 'xx', 'y', 'x', 'y', 'x', 'xx', 'y'] Match words and numbers - show use of results names to collect types of tokens - OneOrMore({{W:(ABCD...) | integer}}...) ['sdlfj', 23084, 'ksdfs', 8234, 'kjsdlfkjd', 934] - alpha: ['sdlfj', 'ksdfs', 'kjsdlfkjd'] - int: [23084, 8234, 934] Using delimitedList (comma is the default delimiter) - And(W:(ABCD...) [, W:(ABCD...)]...) ['xxyx', 'xy', 'y', 'xxyx', 'yxx', 'xy'] Using delimitedList, with ':' delimiter - Combine(W:(0123...) [: W:(0123...)]...) ['0A:4B:73:21:FE:76'] Match with results name - Literal("xyz") ['xyz'] - value: 'xyz' Match with results name - using naming short-cut - Literal("xyz") ['xyz'] - value: 'xyz' Define multiple results names - And({W:(ABCD...,ABCD...) "=" integer}) ['range', '=', 5280] - key: 'range' - value: 5280 Define multiple results names in groups - OneOrMore({Group:({W:(ABCD...) Suppress:("=") {real number with scientific notation | real number | signed integer}})}...) [['range', 5280], ['long', -138.52], ['lat', 46.91]] [0]: ['range', 5280] - key: 'range' - value: 5280 [1]: ['long', -138.52] - key: 'long' - value: -138.52 [2]: ['lat', 46.91] - key: 'lat' - value: 46.91 Define multiple results names in groups - use Dict to define results names using parsed keys - Dict(Dict:({Group:({W:(ABCD...) Suppress:("=") {real number with scientific notation | real number | signed integer}})}...)) [['range', 5280], ['long', -138.52], ['lat', 46.91]] - lat: 46.91 - long: -138.52 - range: 5280 Define multiple value types - Dict(Dict:({Group:({W:(ABCD...) Suppress:("=") {real number with scientific notation | real number | signed integer | True | False | quoted string, starting with ' ending with '}})}...)) [['long', -122.47], ['lat', 37.82], ['public', 'True'], ['name', 'Golden Gate Bridge']] - lat: 37.82 - long: -122.47 - name: 'Golden Gate Bridge' - public: 'True' Parsing real numbers - use parse action to convert to float at parse time - OneOrMore({Combine:({W:(0123...) "." W:(0123...)})}...) [1.2, 2.3, 3.1416, 98.6] Match with numeric string converted to int - Word(W:(0123...)) [12345] Use two parse actions to convert numeric string, then convert to datetime - Word(W:(0123...)) [datetime.datetime(2018, 9, 20, 3, 53, 48)] Use tokenMap for parse actions that operate on a single-length token - Word(W:(0123...)) [datetime.datetime(2018, 9, 20, 3, 53, 48)] Using a built-in function that takes a sequence of strs as a parse action - OneOrMore({W:(0123...)}...) ['0A:4B:73:21:FE:76'] Using a built-in function that takes a sequence of strs as a parse action - OneOrMore({W:(0123...)}...) ['0A', '21', '4B', '73', '76', 'FE'] A parse action that adds new key-values - OneOrMore({integer}...) [27, 1, 14, 22, 89] - ave: 30.6 - max: 89 - min: 1 - sum: 153 Parsing real numbers - using Regex instead of Combine - OneOrMore({Re:('\\d+\\.\\d+')}...) [1.2, 2.3, 3.1416, 98.6] Define a condition to only match numeric values that are multiples of 7 - OneOrMore({W:(0123...)}...) ['14', '35', '77'] Separate conversion to int and condition into separate parse action/conditions - OneOrMore({W:(0123...)}...) [14, 35, 77] Use transformString to convert simple markup to HTML - And({* | _ | / "(" !W:()) ")"}) Show in bold, underscore, or italic type A comma-delimited list of words - And(W:(ABCD...) [, W:(ABCD...)]...) ['this', 'that', 'blah', 'foo', 'bar'] A counted array of words - OneOrMore({(len) W:(ab)...}...) [['aaa', 'bbb'], [], ['abab', 'bbaa', 'abbab']] [0]: ['aaa', 'bbb'] [1]: [] [2]: ['abab', 'bbaa', 'abbab'] skipping comments with ignore - And({identifier "=" fnumber}) ['abc_100', '=', 3.1416] - lhs: 'abc_100' - rhs: 3.1416 some pre-defined expressions in pyparsing_common, and building a dotted identifier with delimted_list - And({{real number with scientific notation | real number | signed integer} identifier [. identifier]... IPv4 address}) [1001, 'www.google.com', '192.168.10.199'] - id_num: 1001 - ip_address: '192.168.10.199' - name: 'www.google.com' using oneOf (shortcut for Literal('a') | Literal('b') | Literal('c')) - OneOrMore({a | b | c}...) ['a', 'b', 'a', 'b', 'b', 'a', 'c', 'c', 'a', 'b', 'b'] parsing nested parentheses - Forward(nested () expression) [['a', 'b', ['c'], 'd', ['e', 'f', 'g', []]]] [0]: ['a', 'b', ['c'], 'd', ['e', 'f', 'g', []]] [0]: a [1]: b [2]: ['c'] [3]: d [4]: ['e', 'f', 'g', []] [0]: e [1]: f [2]: g [3]: [] parsing nested braces - And({"if" nested () expression nested {} expression}) ['if', [['x', '==', 'y'], '||', '!z'], ['printf(', '"{}"', ');']] - body: [['printf(', '"{}"', ');']] [0]: ['printf(', '"{}"', ');'] - condition: [[['x', '==', 'y'], '||', '!z']] [0]: [['x', '==', 'y'], '||', '!z'] [0]: ['x', '==', 'y'] [1]: || [2]: !z ---------------------------------------------------------------------- Ran 13 tests in 0.474s OK + exit 0 + umask 022 + cd /builddir/build/BUILD + cd pyparsing-pyparsing_2.4.0 + DOCDIR=/builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch/usr/share/doc/python3-pyparsing-doc-2.4.0 + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch/usr/share/doc/python3-pyparsing-doc-2.4.0 + cp -pr CHANGES /builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch/usr/share/doc/python3-pyparsing-doc-2.4.0 + cp -pr README.rst /builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch/usr/share/doc/python3-pyparsing-doc-2.4.0 + cp -pr docs/html /builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch/usr/share/doc/python3-pyparsing-doc-2.4.0 Processing files: python3-pyparsing-doc-2.4.0-1.el7.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.PQeg98 + cp -pr examples /builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch/usr/share/doc/python3-pyparsing-doc-2.4.0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.D7pD7c + exit 0 + umask 022 + cd /builddir/build/BUILD + cd pyparsing-pyparsing_2.4.0 + LICENSEDIR=/builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch/usr/share/licenses/python3-pyparsing-doc-2.4.0 + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch/usr/share/licenses/python3-pyparsing-doc-2.4.0 + cp -pr LICENSE /builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch/usr/share/licenses/python3-pyparsing-doc-2.4.0 + exit 0 Provides: python3-pyparsing-doc = 2.4.0-1.el7 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Processing files: python36-pyparsing-2.4.0-1.el7.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.v8VMb5 + umask 022 + cd /builddir/build/BUILD + cd pyparsing-pyparsing_2.4.0 + DOCDIR=/builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch/usr/share/doc/python36-pyparsing-2.4.0 + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch/usr/share/doc/python36-pyparsing-2.4.0 + cp -pr CHANGES /builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch/usr/share/doc/python36-pyparsing-2.4.0 + cp -pr README.rst /builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch/usr/share/doc/python36-pyparsing-2.4.0 + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.ter3H3 + umask 022 + cd /builddir/build/BUILD + cd pyparsing-pyparsing_2.4.0 + LICENSEDIR=/builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch/usr/share/licenses/python36-pyparsing-2.4.0 + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch/usr/share/licenses/python36-pyparsing-2.4.0 + cp -pr LICENSE /builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch/usr/share/licenses/python36-pyparsing-2.4.0 + exit 0 Provides: python36-pyparsing = 2.4.0-1.el7 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: python(abi) = 3.6 Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch Wrote: /builddir/build/RPMS/python3-pyparsing-doc-2.4.0-1.el7.noarch.rpm Wrote: /builddir/build/RPMS/python36-pyparsing-2.4.0-1.el7.noarch.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.YGP6mC + umask 022 + cd /builddir/build/BUILD + cd pyparsing-pyparsing_2.4.0 + /usr/bin/rm -rf /builddir/build/BUILDROOT/python3-pyparsing-2.4.0-1.el7.noarch + exit 0 Child return code was: 0