Skip to content

Instantly share code, notes, and snippets.

@Eric-Arellano
Last active May 16, 2019 02:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Eric-Arellano/cf886685f990eb5520c1a1d97a56dcc6 to your computer and use it in GitHub Desktop.
Save Eric-Arellano/cf886685f990eb5520c1a1d97a56dcc6 to your computer and use it in GitHub Desktop.
size: 1056, obj: <class 'pants.engine.fs.Digest'>
size: 1056, obj: <class 'pants.engine.fs.Snapshot'>
size: 1056, obj: <class 'pants.engine.fs.FileContent'>
size: 1056, obj: <class 'abc.Collection.of(FileContent)'>
size: 1056, obj: <class 'pants.engine.isolated_process.FallibleExecuteProcessResult'>
size: 493, obj: b'============================= test session starts ==============================\nplatform darwin -- Python 3.6.8, pytest-3.6.4, py-1.8.0, pluggy-0.7.1\nrootdir: /Users/eric/DocsLocal/code/projects/pants/.pants.d/process-executionBU0vrV, inifile:\nplugins: cov-2.4.0, timeout-1.2.1\ncollected 5 items\n\npants_test/util/test_strutil.py ..... [100%]\n\n=========================== 5 passed in 0.04 seconds ===========================\n'
size: 1022, obj: b"# Copyright 2014 Pants project contributors (see CONTRIBUTORS.md).\n# Licensed under the Apache License, Version 2.0 (see LICENSE).\n\n# see/edit requirements.txt in this directory to change deps.\npython_requirements()\n\n# Only used by tests, so we lift this library out of the requirements.txt\n# file used to bootstrap pants itself.\npython_requirement_library(\n name='antlr-3.1.3',\n requirements=[\n # TODO: this library is not currently linked from pypi, so we override the repository\n # to fetch it from antlr.org instead. If at any point it reappears on pypi, the\n # repository arg can be removed.\n python_requirement('antlr_python_runtime==3.1.3',\n repository='http://www.antlr3.org/download/Python/')\n ]\n)\n\n# Only used by a maintenance tool, so we lift this library out of the requirements.txt\n# file used to bootstrap pants itself.\npython_requirement_library(\n name='s3logparse',\n requirements=[\n python_requirement('s3-log-parse==0.1.1')\n ]\n)\n"
size: 3591, obj: b"# Copyright 2014 Pants project contributors (see CONTRIBUTORS.md).\n# Licensed under the Apache License, Version 2.0 (see LICENSE).\n\npython_library(\n name = 'argutil',\n sources = ['argutil.py'],\n)\n\npython_library(\n name = 'contextutil',\n sources = ['contextutil.py'],\n dependencies = [\n '3rdparty/python:ansicolors',\n '3rdparty/python:future',\n ':dirutil',\n ':tarutil',\n ],\n)\n\npython_library(\n name = 'collections',\n sources = ['collections.py'],\n dependencies = [\n '3rdparty/python:future',\n ]\n)\n\npython_library(\n name = 'collections_abc_backport',\n sources = ['collections_abc_backport.py'],\n dependencies = [\n '3rdparty/python:future',\n ]\n)\n\npython_library(\n name = 'debug',\n sources = ['debug.py'],\n dependencies = [\n '3rdparty/python:future',\n ],\n)\n\npython_library(\n name = 'desktop',\n sources = ['desktop.py'],\n dependencies = [\n ':osutil',\n ':process_handler',\n ],\n)\n\npython_library(\n name = 'dirutil',\n sources = ['dirutil.py'],\n dependencies = [\n ':strutil',\n '3rdparty/python:future',\n 'src/python/pants/base:deprecated',\n ],\n)\n\npython_library(\n name = 'eval',\n sources = ['eval.py'],\n dependencies = [\n '3rdparty/python:future',\n ]\n)\n\npython_library(\n name = 'fileutil',\n sources = ['fileutil.py'],\n dependencies = [\n '3rdparty/python:future',\n ':contextutil',\n ],\n)\n\npython_library(\n name = 'filtering',\n sources = ['filtering.py'],\n dependencies = [\n '3rdparty/python:future',\n ]\n)\n\npython_library(\n name = 'memo',\n sources = ['memo.py'],\n dependencies = [\n ':meta'\n ],\n)\n\npython_library(\n name = 'meta',\n sources = ['meta.py'],\n dependencies = [\n '3rdparty/python:future',\n ]\n)\n\npython_library(\n name = 'netrc',\n sources = ['netrc.py'],\n dependencies = [\n '3rdparty/python:future',\n ]\n)\n\npython_library(\n name = 'objects',\n sources = ['objects.py'],\n dependencies = [\n '3rdparty/python/twitter/commons:twitter.common.collections',\n '3rdparty/python:future',\n ':collections_abc_backport',\n ':memo',\n ':meta',\n ],\n)\n\npython_library(\n name = 'osutil',\n sources = ['osutil.py'],\n dependencies = [\n '3rdparty/python:future',\n ]\n)\n\npython_library(\n name = 'process_handler',\n sources = ['process_handler.py'],\n dependencies= [\n '3rdparty/python:future',\n '3rdparty/python:subprocess32',\n ':meta',\n ]\n)\n\npython_library(\n name = 'py2_compat',\n sources = ['py2_compat.py'],\n dependencies= [\n '3rdparty/python:future',\n '3rdparty/python:configparser',\n ]\n)\n\npython_library(\n name = 'retry',\n sources = ['retry.py'],\n dependencies = [\n '3rdparty/python:future',\n ]\n)\n\npython_library(\n name = 'rwbuf',\n sources = ['rwbuf.py'],\n dependencies = [\n '3rdparty/python:future',\n '3rdparty/python:six',\n ]\n)\n\npython_library(\n name = 's3_log_aggregator',\n sources = ['s3_log_aggregator.py'],\n dependencies = [\n '3rdparty/python:future',\n '3rdparty/python:s3logparse'\n ]\n)\n\npython_binary(\n name = 's3_log_aggregator_bin',\n entry_point = 'pants.util.s3_log_aggregator',\n dependencies = [\n ':s3_log_aggregator'\n ]\n)\n\npython_library(\n name = 'socket',\n sources = ['socket.py'],\n dependencies = [\n '3rdparty/python:future',\n ]\n)\n\npython_library(\n name = 'strutil',\n sources = ['strutil.py'],\n dependencies = [\n '3rdparty/python:future',\n ],\n)\n\npython_library(\n name = 'tarutil',\n sources = ['tarutil.py'],\n dependencies = [\n '3rdparty/python:future',\n '3rdparty/python:six',\n ],\n)\n\npython_library(\n name = 'xml_parser',\n sources = ['xml_parser.py'],\n)\n"
size: 296, obj: /Users/eric/DocsLocal/code/projects/pants/build-support/pants_dev_deps.py36.venv/bin:/usr/local/opt/openssl/bin:/Users/eric/.pyenv/shims:/Users/eric/.cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/Users/eric/.local/bin
size: 3998, obj: b"# Copyright 2014 Pants project contributors (see CONTRIBUTORS.md).\n# Licensed under the Apache License, Version 2.0 (see LICENSE).\n\npython_tests(\n name = 'argutil',\n sources = ['test_argutil.py'],\n coverage = ['pants.util.argutil'],\n dependencies = [\n 'src/python/pants/util:argutil',\n ],\n)\n\npython_tests(\n name = 'collections',\n sources = ['test_collections.py'],\n coverage = ['pants.util.collections'],\n dependencies = [\n '3rdparty/python:future',\n 'src/python/pants/util:collections',\n ]\n)\n\npython_tests(\n name = 'contextutil',\n sources = ['test_contextutil.py'],\n coverage = ['pants.util.contextutil'],\n dependencies = [\n '3rdparty/python:future',\n '3rdparty/python:mock',\n 'src/python/pants/util:contextutil',\n 'src/python/pants/util:process_handler',\n ]\n)\n\npython_tests(\n name = 'dirutil',\n sources = ['test_dirutil.py'],\n coverage = ['pants.util.dirutil'],\n dependencies = [\n '3rdparty/python:future',\n '3rdparty/python:mock',\n 'src/python/pants/util:contextutil',\n 'src/python/pants/util:dirutil',\n 'src/python/pants/util:objects',\n ]\n)\n\npython_tests(\n name = 'eval',\n sources = ['test_eval.py'],\n dependencies = [\n '3rdparty/python:future',\n 'src/python/pants/util:eval',\n ]\n)\n\npython_tests(\n name = 'fileutil',\n sources = ['test_fileutil.py'],\n dependencies = [\n '3rdparty/python:future',\n '3rdparty/python:mock',\n 'src/python/pants/util:contextutil',\n 'src/python/pants/util:fileutil',\n ]\n)\n\npython_tests(\n name = 'filtering',\n sources = ['test_filtering.py'],\n dependencies = [\n 'src/python/pants/util:filtering',\n ]\n)\n\npython_tests(\n name = 'memo',\n sources = ['test_memo.py'],\n dependencies = [\n '3rdparty/python:future',\n 'src/python/pants/util:memo',\n 'src/python/pants/util:meta',\n ]\n)\n\npython_tests(\n name = 'meta',\n sources = ['test_meta.py'],\n dependencies = [\n '3rdparty/python:future',\n 'src/python/pants/util:meta',\n 'tests/python/pants_test:test_base',\n ]\n)\n\npython_tests(\n name = 'netrc',\n sources = ['test_netrc.py'],\n dependencies = [\n '3rdparty/python:future',\n '3rdparty/python:mock',\n 'src/python/pants/util:netrc',\n ]\n)\n\npython_tests(\n name = 'objects',\n sources = ['test_objects.py'],\n coverage = ['pants.util.objects'],\n dependencies = [\n '3rdparty/python:future',\n 'src/python/pants/util:objects',\n 'tests/python/pants_test:test_base',\n ]\n)\n\npython_tests(\n name = 'osutil',\n sources = ['test_osutil.py'],\n dependencies = [\n '3rdparty/python:future',\n 'src/python/pants/util:osutil',\n 'tests/python/pants_test:test_base',\n ]\n)\n\npython_tests(\n name = 'process_handler',\n sources = ['test_process_handler.py'],\n dependencies = [\n 'src/python/pants/util:process_handler',\n ]\n)\n\npython_tests(\n name = 'retry',\n sources = ['test_retry.py'],\n dependencies = [\n '3rdparty/python:mock',\n 'src/python/pants/util:retry',\n ]\n)\n\npython_tests(\n name = 'rwbuf',\n sources = ['test_rwbuf.py'],\n dependencies = [\n 'src/python/pants/util:contextutil',\n 'src/python/pants/util:rwbuf',\n ],\n)\n\npython_tests(\n name = 'socket',\n sources = ['test_socket.py'],\n coverage = ['pants.util.socket'],\n dependencies = [\n '3rdparty/python:mock',\n 'src/python/pants/util:socket',\n ]\n)\n\npython_tests(\n name = 'strutil',\n sources = ['test_strutil.py'],\n dependencies = [\n '3rdparty/python:future',\n 'src/python/pants/util:strutil',\n ]\n)\n\npython_tests(\n name = 'tarutil',\n sources = ['test_tarutil.py'],\n dependencies = [\n '3rdparty/python:future',\n 'src/python/pants/util:dirutil',\n 'src/python/pants/util:tarutil',\n ]\n)\n\npython_library(\n name='xml_test_base',\n sources = ['xml_test_base.py'],\n dependencies = [\n 'src/python/pants/util:contextutil',\n ]\n)\n\npython_tests(\n name = 'xml_parser',\n sources = ['test_xml_parser.py'],\n dependencies = [\n 'src/python/pants/util:xml_parser',\n 'tests/python/pants_test/util:xml_test_base',\n ]\n)\n"
size: 296, obj: /Users/eric/DocsLocal/code/projects/pants/build-support/pants_dev_deps.py36.venv/bin:/usr/local/opt/openssl/bin:/Users/eric/.pyenv/shims:/Users/eric/.cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/Users/eric/.local/bin
Snapshot comparison for after pex
[<StatisticDiff traceback=<Traceback (<Frame filename='/Users/eric/DocsLocal/code/projects/pants/src/python/pants/engine/native.py' lineno=532>,)> size=1200 (+1200) count=15 (+15)>,
<StatisticDiff traceback=<Traceback (<Frame filename='/Users/eric/DocsLocal/code/projects/pants/build-support/pants_dev_deps.py36.venv/lib/python3.6/_weakrefset.py' lineno=84>,)> size=560 (+560) count=7 (+7)>,
<StatisticDiff traceback=<Traceback (<Frame filename='<string>' lineno=14>,)> size=328 (+328) count=4 (+4)>,
<StatisticDiff traceback=<Traceback (<Frame filename='<unknown>' lineno=0>,)> size=168 (+168) count=4 (+4)>,
<StatisticDiff traceback=<Traceback (<Frame filename='/Users/eric/.pyenv/versions/3.6.8/lib/python3.6/tracemalloc.py' lineno=387>,)> size=168 (+168) count=3 (+3)>]
Snapshot comparison for after closure
[<StatisticDiff traceback=<Traceback (<Frame filename='/Users/eric/DocsLocal/code/projects/pants/src/python/pants/engine/native.py' lineno=532>,)> size=2640 (+1440) count=33 (+18)>,
<StatisticDiff traceback=<Traceback (<Frame filename='/Users/eric/DocsLocal/code/projects/pants/build-support/pants_dev_deps.py36.venv/lib/python3.6/_weakrefset.py' lineno=84>,)> size=1200 (+640) count=15 (+8)>,
<StatisticDiff traceback=<Traceback (<Frame filename='<string>' lineno=14>,)> size=760 (+432) count=10 (+6)>,
<StatisticDiff traceback=<Traceback (<Frame filename='/Users/eric/DocsLocal/code/projects/pants/src/python/pants/engine/native.py' lineno=276>,)> size=176 (+176) count=2 (+2)>,
<StatisticDiff traceback=<Traceback (<Frame filename='/Users/eric/.pyenv/versions/3.6.8/lib/python3.6/tracemalloc.py' lineno=387>,)> size=336 (+168) count=6 (+3)>]
Snapshot comparison for after requirements
[<StatisticDiff traceback=<Traceback (<Frame filename='/Users/eric/DocsLocal/code/projects/pants/src/python/pants/engine/native.py' lineno=532>,)> size=7280 (+4640) count=91 (+58)>,
<StatisticDiff traceback=<Traceback (<Frame filename='/Users/eric/DocsLocal/code/projects/pants/src/python/pants/backend/python/subsystems/python_setup.py' lineno=165>,)> size=776 (+776) count=11 (+11)>,
<StatisticDiff traceback=<Traceback (<Frame filename='<string>' lineno=14>,)> size=1224 (+464) count=15 (+5)>,
<StatisticDiff traceback=<Traceback (<Frame filename='/Users/eric/DocsLocal/code/projects/pants/src/python/pants/engine/native.py' lineno=271>,)> size=465 (+413) count=8 (+7)>,
<StatisticDiff traceback=<Traceback (<Frame filename='/Users/eric/DocsLocal/code/projects/pants/src/python/pants/backend/python/rules/python_test_runner.py' lineno=112>,)> size=368 (+368) count=2 (+2)>]
Snapshot comparison for after sources
[<StatisticDiff traceback=<Traceback (<Frame filename='/Users/eric/DocsLocal/code/projects/pants/build-support/pants_dev_deps.py36.venv/lib/python3.6/_weakrefset.py' lineno=84>,)> size=5904 (+4704) count=36 (+21)>,
<StatisticDiff traceback=<Traceback (<Frame filename='/Users/eric/DocsLocal/code/projects/pants/src/python/pants/engine/native.py' lineno=532>,)> size=11840 (+4560) count=148 (+57)>,
<StatisticDiff traceback=<Traceback (<Frame filename='/Users/eric/DocsLocal/code/projects/pants/src/python/pants/source/source_root.py' lineno=290>,)> size=2120 (+2120) count=41 (+41)>,
<StatisticDiff traceback=<Traceback (<Frame filename='/Users/eric/DocsLocal/code/projects/pants/src/python/pants/source/source_root.py' lineno=316>,)> size=1400 (+1400) count=25 (+25)>,
<StatisticDiff traceback=<Traceback (<Frame filename='<string>' lineno=14>,)> size=2168 (+944) count=27 (+12)>]
Snapshot comparison for after __init__
[<StatisticDiff traceback=<Traceback (<Frame filename='/Users/eric/DocsLocal/code/projects/pants/src/python/pants/engine/native.py' lineno=370>,)> size=7485 (+7485) count=3 (+3)>,
<StatisticDiff traceback=<Traceback (<Frame filename='/Users/eric/DocsLocal/code/projects/pants/src/python/pants/engine/native.py' lineno=532>,)> size=16480 (+4640) count=206 (+58)>,
<StatisticDiff traceback=<Traceback (<Frame filename='<string>' lineno=14>,)> size=3128 (+960) count=39 (+12)>,
<StatisticDiff traceback=<Traceback (<Frame filename='/Users/eric/DocsLocal/code/projects/pants/src/python/pants/backend/python/rules/python_test_runner.py' lineno=157>,)> size=496 (+496) count=1 (+1)>,
<StatisticDiff traceback=<Traceback (<Frame filename='/Users/eric/DocsLocal/code/projects/pants/build-support/pants_dev_deps.py36.venv/lib/python3.6/abc.py' lineno=228>,)> size=0 (-488) count=0 (-1)>]
Snapshot comparison for after merge
[<StatisticDiff traceback=<Traceback (<Frame filename='/Users/eric/DocsLocal/code/projects/pants/src/python/pants/engine/native.py' lineno=532>,)> size=18080 (+1600) count=226 (+20)>,
<StatisticDiff traceback=<Traceback (<Frame filename='<string>' lineno=14>,)> size=3592 (+464) count=46 (+7)>,
<StatisticDiff traceback=<Traceback (<Frame filename='/Users/eric/DocsLocal/code/projects/pants/src/python/pants/backend/python/rules/python_test_runner.py' lineno=175>,)> size=216 (+216) count=3 (+3)>,
<StatisticDiff traceback=<Traceback (<Frame filename='/Users/eric/.pyenv/versions/3.6.8/lib/python3.6/tracemalloc.py' lineno=387>,)> size=944 (+152) count=18 (+3)>,
<StatisticDiff traceback=<Traceback (<Frame filename='/Users/eric/.pyenv/versions/3.6.8/lib/python3.6/tracemalloc.py' lineno=524>,)> size=464 (+120) count=8 (+2)>]
Snapshot comparison for after pytest
[<StatisticDiff traceback=<Traceback (<Frame filename='/Users/eric/DocsLocal/code/projects/pants/src/python/pants/engine/native.py' lineno=532>,)> size=20560 (+2480) count=257 (+31)>,
<StatisticDiff traceback=<Traceback (<Frame filename='/Users/eric/DocsLocal/code/projects/pants/src/python/pants/engine/native.py' lineno=370>,)> size=7978 (+493) count=4 (+1)>,
<StatisticDiff traceback=<Traceback (<Frame filename='<string>' lineno=14>,)> size=3968 (+376) count=50 (+4)>,
<StatisticDiff traceback=<Traceback (<Frame filename='/Users/eric/DocsLocal/code/projects/pants/src/python/pants/backend/python/rules/python_test_runner.py' lineno=182>,)> size=296 (+296) count=1 (+1)>,
<StatisticDiff traceback=<Traceback (<Frame filename='/Users/eric/.pyenv/versions/3.6.8/lib/python3.6/tracemalloc.py' lineno=387>,)> size=1096 (+152) count=21 (+3)>]
size: 1056, obj: <class 'pants.engine.fs.Digest'>
size: 1056, obj: <class 'pants.engine.fs.Snapshot'>
size: 1056, obj: <class 'pants.engine.fs.Digest'>
size: 1056, obj: <class 'pants.engine.fs.Snapshot'>
size: 1056, obj: <class 'pants.engine.fs.FileContent'>
size: 3998, obj: b"# Copyright 2014 Pants project contributors (see CONTRIBUTORS.md).\n# Licensed under the Apache License, Version 2.0 (see LICENSE).\n\npython_tests(\n name = 'argutil',\n sources = ['test_argutil.py'],\n coverage = ['pants.util.argutil'],\n dependencies = [\n 'src/python/pants/util:argutil',\n ],\n)\n\npython_tests(\n name = 'collections',\n sources = ['test_collections.py'],\n coverage = ['pants.util.collections'],\n dependencies = [\n '3rdparty/python:future',\n 'src/python/pants/util:collections',\n ]\n)\n\npython_tests(\n name = 'contextutil',\n sources = ['test_contextutil.py'],\n coverage = ['pants.util.contextutil'],\n dependencies = [\n '3rdparty/python:future',\n '3rdparty/python:mock',\n 'src/python/pants/util:contextutil',\n 'src/python/pants/util:process_handler',\n ]\n)\n\npython_tests(\n name = 'dirutil',\n sources = ['test_dirutil.py'],\n coverage = ['pants.util.dirutil'],\n dependencies = [\n '3rdparty/python:future',\n '3rdparty/python:mock',\n 'src/python/pants/util:contextutil',\n 'src/python/pants/util:dirutil',\n 'src/python/pants/util:objects',\n ]\n)\n\npython_tests(\n name = 'eval',\n sources = ['test_eval.py'],\n dependencies = [\n '3rdparty/python:future',\n 'src/python/pants/util:eval',\n ]\n)\n\npython_tests(\n name = 'fileutil',\n sources = ['test_fileutil.py'],\n dependencies = [\n '3rdparty/python:future',\n '3rdparty/python:mock',\n 'src/python/pants/util:contextutil',\n 'src/python/pants/util:fileutil',\n ]\n)\n\npython_tests(\n name = 'filtering',\n sources = ['test_filtering.py'],\n dependencies = [\n 'src/python/pants/util:filtering',\n ]\n)\n\npython_tests(\n name = 'memo',\n sources = ['test_memo.py'],\n dependencies = [\n '3rdparty/python:future',\n 'src/python/pants/util:memo',\n 'src/python/pants/util:meta',\n ]\n)\n\npython_tests(\n name = 'meta',\n sources = ['test_meta.py'],\n dependencies = [\n '3rdparty/python:future',\n 'src/python/pants/util:meta',\n 'tests/python/pants_test:test_base',\n ]\n)\n\npython_tests(\n name = 'netrc',\n sources = ['test_netrc.py'],\n dependencies = [\n '3rdparty/python:future',\n '3rdparty/python:mock',\n 'src/python/pants/util:netrc',\n ]\n)\n\npython_tests(\n name = 'objects',\n sources = ['test_objects.py'],\n coverage = ['pants.util.objects'],\n dependencies = [\n '3rdparty/python:future',\n 'src/python/pants/util:objects',\n 'tests/python/pants_test:test_base',\n ]\n)\n\npython_tests(\n name = 'osutil',\n sources = ['test_osutil.py'],\n dependencies = [\n '3rdparty/python:future',\n 'src/python/pants/util:osutil',\n 'tests/python/pants_test:test_base',\n ]\n)\n\npython_tests(\n name = 'process_handler',\n sources = ['test_process_handler.py'],\n dependencies = [\n 'src/python/pants/util:process_handler',\n ]\n)\n\npython_tests(\n name = 'retry',\n sources = ['test_retry.py'],\n dependencies = [\n '3rdparty/python:mock',\n 'src/python/pants/util:retry',\n ]\n)\n\npython_tests(\n name = 'rwbuf',\n sources = ['test_rwbuf.py'],\n dependencies = [\n 'src/python/pants/util:contextutil',\n 'src/python/pants/util:rwbuf',\n ],\n)\n\npython_tests(\n name = 'socket',\n sources = ['test_socket.py'],\n coverage = ['pants.util.socket'],\n dependencies = [\n '3rdparty/python:mock',\n 'src/python/pants/util:socket',\n ]\n)\n\npython_tests(\n name = 'strutil',\n sources = ['test_strutil.py'],\n dependencies = [\n '3rdparty/python:future',\n 'src/python/pants/util:strutil',\n ]\n)\n\npython_tests(\n name = 'tarutil',\n sources = ['test_tarutil.py'],\n dependencies = [\n '3rdparty/python:future',\n 'src/python/pants/util:dirutil',\n 'src/python/pants/util:tarutil',\n ]\n)\n\npython_library(\n name='xml_test_base',\n sources = ['xml_test_base.py'],\n dependencies = [\n 'src/python/pants/util:contextutil',\n ]\n)\n\npython_tests(\n name = 'xml_parser',\n sources = ['test_xml_parser.py'],\n dependencies = [\n 'src/python/pants/util:xml_parser',\n 'tests/python/pants_test/util:xml_test_base',\n ]\n)\n"
size: 1056, obj: <class 'abc.Collection.of(FileContent)'>
size: 1056, obj: <class 'pants.engine.fs.Digest'>
size: 1056, obj: <class 'pants.engine.fs.Snapshot'>
01:17:39 [INFO] Starting tests: tests/python/pants_test/util:strutil
size: 1056, obj: <class 'pants.engine.fs.Digest'>
size: 1056, obj: <class 'pants.engine.fs.Snapshot'>
size: 1056, obj: <class 'pants.engine.fs.FileContent'>
size: 1022, obj: b"# Copyright 2014 Pants project contributors (see CONTRIBUTORS.md).\n# Licensed under the Apache License, Version 2.0 (see LICENSE).\n\n# see/edit requirements.txt in this directory to change deps.\npython_requirements()\n\n# Only used by tests, so we lift this library out of the requirements.txt\n# file used to bootstrap pants itself.\npython_requirement_library(\n name='antlr-3.1.3',\n requirements=[\n # TODO: this library is not currently linked from pypi, so we override the repository\n # to fetch it from antlr.org instead. If at any point it reappears on pypi, the\n # repository arg can be removed.\n python_requirement('antlr_python_runtime==3.1.3',\n repository='http://www.antlr3.org/download/Python/')\n ]\n)\n\n# Only used by a maintenance tool, so we lift this library out of the requirements.txt\n# file used to bootstrap pants itself.\npython_requirement_library(\n name='s3logparse',\n requirements=[\n python_requirement('s3-log-parse==0.1.1')\n ]\n)\n"
size: 1056, obj: <class 'abc.Collection.of(FileContent)'>
size: 1056, obj: <class 'pants.engine.fs.Digest'>
size: 1056, obj: <class 'pants.engine.fs.Snapshot'>
size: 1056, obj: <class 'pants.engine.fs.FileContent'>
size: 3591, obj: b"# Copyright 2014 Pants project contributors (see CONTRIBUTORS.md).\n# Licensed under the Apache License, Version 2.0 (see LICENSE).\n\npython_library(\n name = 'argutil',\n sources = ['argutil.py'],\n)\n\npython_library(\n name = 'contextutil',\n sources = ['contextutil.py'],\n dependencies = [\n '3rdparty/python:ansicolors',\n '3rdparty/python:future',\n ':dirutil',\n ':tarutil',\n ],\n)\n\npython_library(\n name = 'collections',\n sources = ['collections.py'],\n dependencies = [\n '3rdparty/python:future',\n ]\n)\n\npython_library(\n name = 'collections_abc_backport',\n sources = ['collections_abc_backport.py'],\n dependencies = [\n '3rdparty/python:future',\n ]\n)\n\npython_library(\n name = 'debug',\n sources = ['debug.py'],\n dependencies = [\n '3rdparty/python:future',\n ],\n)\n\npython_library(\n name = 'desktop',\n sources = ['desktop.py'],\n dependencies = [\n ':osutil',\n ':process_handler',\n ],\n)\n\npython_library(\n name = 'dirutil',\n sources = ['dirutil.py'],\n dependencies = [\n ':strutil',\n '3rdparty/python:future',\n 'src/python/pants/base:deprecated',\n ],\n)\n\npython_library(\n name = 'eval',\n sources = ['eval.py'],\n dependencies = [\n '3rdparty/python:future',\n ]\n)\n\npython_library(\n name = 'fileutil',\n sources = ['fileutil.py'],\n dependencies = [\n '3rdparty/python:future',\n ':contextutil',\n ],\n)\n\npython_library(\n name = 'filtering',\n sources = ['filtering.py'],\n dependencies = [\n '3rdparty/python:future',\n ]\n)\n\npython_library(\n name = 'memo',\n sources = ['memo.py'],\n dependencies = [\n ':meta'\n ],\n)\n\npython_library(\n name = 'meta',\n sources = ['meta.py'],\n dependencies = [\n '3rdparty/python:future',\n ]\n)\n\npython_library(\n name = 'netrc',\n sources = ['netrc.py'],\n dependencies = [\n '3rdparty/python:future',\n ]\n)\n\npython_library(\n name = 'objects',\n sources = ['objects.py'],\n dependencies = [\n '3rdparty/python/twitter/commons:twitter.common.collections',\n '3rdparty/python:future',\n ':collections_abc_backport',\n ':memo',\n ':meta',\n ],\n)\n\npython_library(\n name = 'osutil',\n sources = ['osutil.py'],\n dependencies = [\n '3rdparty/python:future',\n ]\n)\n\npython_library(\n name = 'process_handler',\n sources = ['process_handler.py'],\n dependencies= [\n '3rdparty/python:future',\n '3rdparty/python:subprocess32',\n ':meta',\n ]\n)\n\npython_library(\n name = 'py2_compat',\n sources = ['py2_compat.py'],\n dependencies= [\n '3rdparty/python:future',\n '3rdparty/python:configparser',\n ]\n)\n\npython_library(\n name = 'retry',\n sources = ['retry.py'],\n dependencies = [\n '3rdparty/python:future',\n ]\n)\n\npython_library(\n name = 'rwbuf',\n sources = ['rwbuf.py'],\n dependencies = [\n '3rdparty/python:future',\n '3rdparty/python:six',\n ]\n)\n\npython_library(\n name = 's3_log_aggregator',\n sources = ['s3_log_aggregator.py'],\n dependencies = [\n '3rdparty/python:future',\n '3rdparty/python:s3logparse'\n ]\n)\n\npython_binary(\n name = 's3_log_aggregator_bin',\n entry_point = 'pants.util.s3_log_aggregator',\n dependencies = [\n ':s3_log_aggregator'\n ]\n)\n\npython_library(\n name = 'socket',\n sources = ['socket.py'],\n dependencies = [\n '3rdparty/python:future',\n ]\n)\n\npython_library(\n name = 'strutil',\n sources = ['strutil.py'],\n dependencies = [\n '3rdparty/python:future',\n ],\n)\n\npython_library(\n name = 'tarutil',\n sources = ['tarutil.py'],\n dependencies = [\n '3rdparty/python:future',\n '3rdparty/python:six',\n ],\n)\n\npython_library(\n name = 'xml_parser',\n sources = ['xml_parser.py'],\n)\n"
size: 1056, obj: <class 'abc.Collection.of(FileContent)'>
size: 1056, obj: <class 'pants.engine.fs.Digest'>
size: 1056, obj: <class 'pants.engine.fs.Snapshot'>
size: 1056, obj: <class 'pants.engine.fs.Digest'>
size: 1056, obj: <class 'pants.engine.fs.Snapshot'>
size: 1056, obj: <class 'pants.engine.fs.Digest'>
size: 1056, obj: <class 'pants.engine.fs.Snapshot'>
size: 296, obj: /Users/eric/DocsLocal/code/projects/pants/build-support/pants_dev_deps.py36.venv/bin:/usr/local/opt/openssl/bin:/Users/eric/.pyenv/shims:/Users/eric/.cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/Users/eric/.local/bin
size: 1056, obj: <class 'pants.engine.fs.Digest'>
size: 1056, obj: <class 'pants.engine.isolated_process.FallibleExecuteProcessResult'>
size: 1056, obj: <class 'pants.engine.fs.Digest'>
size: 1056, obj: <class 'pants.engine.fs.Digest'>
size: 1056, obj: <class 'pants.engine.fs.Digest'>
size: 1056, obj: <class 'pants.engine.fs.Digest'>
size: 1056, obj: <class 'pants.engine.fs.Digest'>
size: 1056, obj: <class 'pants.engine.fs.Snapshot'>
size: 1056, obj: <class 'pants.engine.fs.Digest'>
size: 1056, obj: <class 'pants.engine.isolated_process.FallibleExecuteProcessResult'>
size: 1056, obj: <class 'pants.engine.fs.Digest'>
size: 296, obj: /Users/eric/DocsLocal/code/projects/pants/build-support/pants_dev_deps.py36.venv/bin:/usr/local/opt/openssl/bin:/Users/eric/.pyenv/shims:/Users/eric/.cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/Users/eric/.local/bin
size: 1056, obj: <class 'pants.engine.fs.Digest'>
size: 1056, obj: <class 'pants.engine.isolated_process.FallibleExecuteProcessResult'>
size: 493, obj: b'============================= test session starts ==============================\nplatform darwin -- Python 3.6.8, pytest-3.6.4, py-1.8.0, pluggy-0.7.1\nrootdir: /Users/eric/DocsLocal/code/projects/pants/.pants.d/process-execution7AiZJy, inifile:\nplugins: timeout-1.2.1, cov-2.4.0\ncollected 5 items\n\npants_test/util/test_strutil.py ..... [100%]\n\n=========================== 5 passed in 0.07 seconds ===========================\n'
size: 136, obj: <function EngineInitializer.setup_legacy_graph_extended.<locals>.glob_match_error_behavior_singleton at 0x10fbf6268>
size: 136, obj: <function EngineInitializer.setup_legacy_graph_extended.<locals>.build_configuration_singleton at 0x10fd01840>
size: 136, obj: <function EngineInitializer.setup_legacy_graph_extended.<locals>.symbol_table_singleton at 0x10fd018c8>
size: 136, obj: <function transitive_hydrated_targets at 0x10bf711e0>
size: 136, obj: <function transitive_hydrated_target at 0x10bf71268>
size: 136, obj: <function hydrated_targets at 0x10bf712f0>
size: 136, obj: <function hydrate_target at 0x10bf882f0>
size: 136, obj: <function find_owners at 0x10bf70400>
size: 136, obj: <function addresses_from_address_families at 0x10bf96840>
size: 136, obj: <function hydrate_sources at 0x10bf88400>
size: 136, obj: <function hydrate_bundles at 0x10bf88488>
size: 136, obj: <function fallible_to_exec_result_or_raise at 0x10b8656a8>
size: 136, obj: <function create_graph_rules.<locals>.address_mapper_singleton at 0x10fd017b8>
size: 136, obj: <function hydrate_struct at 0x10bf967b8>
size: 136, obj: <function parse_address_family at 0x10bf83d08>
size: 136, obj: <function scope_options at 0x10c2d9158>
size: 136, obj: <function parse_options at 0x10c2deea0>
size: 136, obj: <function run_python_test at 0x10bf830d0>
size: 136, obj: <function platform_singleton at 0x10f084950>
size: 136, obj: <function select_libc_objects at 0x10f0f3840>
size: 136, obj: <function select_assembler at 0x10f0fe598>
size: 136, obj: <function get_assembler at 0x10f0cf048>
size: 136, obj: <function get_as at 0x10f093840>
size: 136, obj: <function select_base_linker at 0x10f103598>
size: 136, obj: <function select_gcc_linker at 0x10f103620>
size: 136, obj: <function select_llvm_linker at 0x10f1036a8>
size: 136, obj: <function select_gcc_install_location at 0x10f112730>
size: 136, obj: <function select_llvm_c_toolchain at 0x10f1127b8>
size: 136, obj: <function select_llvm_cpp_toolchain at 0x10f112840>
size: 136, obj: <function select_gcc_c_toolchain at 0x10f1128c8>
size: 136, obj: <function select_gcc_cpp_toolchain at 0x10f1129d8>
size: 136, obj: <function select_c_toolchain at 0x10f111950>
size: 136, obj: <function select_cpp_toolchain at 0x10f1119d8>
size: 136, obj: <function get_ld at 0x10f0cf488>
size: 136, obj: <function get_ld at 0x10f0939d8>
size: 136, obj: <function get_lld at 0x10f0b6400>
size: 136, obj: <function get_clang at 0x10f0cf510>
size: 136, obj: <function get_gcc at 0x10f0a9400>
size: 136, obj: <function get_clang at 0x10f0b6488>
size: 136, obj: <function get_clang_plusplus at 0x10f0cf598>
size: 136, obj: <function get_gplusplus at 0x10f0a96a8>
size: 136, obj: <function get_clang_plusplus at 0x10f0b6598>
size: 136, obj: <function list_targets at 0x10f5601e0>
size: 136, obj: <function file_deps at 0x10f5567b8>
size: 136, obj: <function coordinator_of_tests at 0x10f560bf8>
size: 136, obj: <function fast_test at 0x10f560950>
size: 136, obj: <function validate at 0x10f5f6e18>
size: 136, obj: <function match_regexes_for_one_target at 0x10f5f5598>
size: 136, obj: <function fast_list_and_die_for_testing at 0x10f657ea0>
size: 1056, obj: <class 'pants.engine.fs.Digest'>
size: 1056, obj: <class 'pants.engine.fs.Snapshot'>
size: 1056, obj: <class 'pants.engine.fs.FileContent'>
size: 1056, obj: <class 'abc.Collection.of(FileContent)'>
size: 1056, obj: <class 'pants.engine.isolated_process.FallibleExecuteProcessResult'>
size: 113, obj: 5761288258c4fc683bbc278a815c351878bd7302c2be90a3f8599a515f2c27f1
size: 113, obj: 5761288258c4fc683bbc278a815c351878bd7302c2be90a3f8599a515f2c27f1
size: 113, obj: 5761288258c4fc683bbc278a815c351878bd7302c2be90a3f8599a515f2c27f1
size: 3998, obj: b"# Copyright 2014 Pants project contributors (see CONTRIBUTORS.md).\n# Licensed under the Apache License, Version 2.0 (see LICENSE).\n\npython_tests(\n name = 'argutil',\n sources = ['test_argutil.py'],\n coverage = ['pants.util.argutil'],\n dependencies = [\n 'src/python/pants/util:argutil',\n ],\n)\n\npython_tests(\n name = 'collections',\n sources = ['test_collections.py'],\n coverage = ['pants.util.collections'],\n dependencies = [\n '3rdparty/python:future',\n 'src/python/pants/util:collections',\n ]\n)\n\npython_tests(\n name = 'contextutil',\n sources = ['test_contextutil.py'],\n coverage = ['pants.util.contextutil'],\n dependencies = [\n '3rdparty/python:future',\n '3rdparty/python:mock',\n 'src/python/pants/util:contextutil',\n 'src/python/pants/util:process_handler',\n ]\n)\n\npython_tests(\n name = 'dirutil',\n sources = ['test_dirutil.py'],\n coverage = ['pants.util.dirutil'],\n dependencies = [\n '3rdparty/python:future',\n '3rdparty/python:mock',\n 'src/python/pants/util:contextutil',\n 'src/python/pants/util:dirutil',\n 'src/python/pants/util:objects',\n ]\n)\n\npython_tests(\n name = 'eval',\n sources = ['test_eval.py'],\n dependencies = [\n '3rdparty/python:future',\n 'src/python/pants/util:eval',\n ]\n)\n\npython_tests(\n name = 'fileutil',\n sources = ['test_fileutil.py'],\n dependencies = [\n '3rdparty/python:future',\n '3rdparty/python:mock',\n 'src/python/pants/util:contextutil',\n 'src/python/pants/util:fileutil',\n ]\n)\n\npython_tests(\n name = 'filtering',\n sources = ['test_filtering.py'],\n dependencies = [\n 'src/python/pants/util:filtering',\n ]\n)\n\npython_tests(\n name = 'memo',\n sources = ['test_memo.py'],\n dependencies = [\n '3rdparty/python:future',\n 'src/python/pants/util:memo',\n 'src/python/pants/util:meta',\n ]\n)\n\npython_tests(\n name = 'meta',\n sources = ['test_meta.py'],\n dependencies = [\n '3rdparty/python:future',\n 'src/python/pants/util:meta',\n 'tests/python/pants_test:test_base',\n ]\n)\n\npython_tests(\n name = 'netrc',\n sources = ['test_netrc.py'],\n dependencies = [\n '3rdparty/python:future',\n '3rdparty/python:mock',\n 'src/python/pants/util:netrc',\n ]\n)\n\npython_tests(\n name = 'objects',\n sources = ['test_objects.py'],\n coverage = ['pants.util.objects'],\n dependencies = [\n '3rdparty/python:future',\n 'src/python/pants/util:objects',\n 'tests/python/pants_test:test_base',\n ]\n)\n\npython_tests(\n name = 'osutil',\n sources = ['test_osutil.py'],\n dependencies = [\n '3rdparty/python:future',\n 'src/python/pants/util:osutil',\n 'tests/python/pants_test:test_base',\n ]\n)\n\npython_tests(\n name = 'process_handler',\n sources = ['test_process_handler.py'],\n dependencies = [\n 'src/python/pants/util:process_handler',\n ]\n)\n\npython_tests(\n name = 'retry',\n sources = ['test_retry.py'],\n dependencies = [\n '3rdparty/python:mock',\n 'src/python/pants/util:retry',\n ]\n)\n\npython_tests(\n name = 'rwbuf',\n sources = ['test_rwbuf.py'],\n dependencies = [\n 'src/python/pants/util:contextutil',\n 'src/python/pants/util:rwbuf',\n ],\n)\n\npython_tests(\n name = 'socket',\n sources = ['test_socket.py'],\n coverage = ['pants.util.socket'],\n dependencies = [\n '3rdparty/python:mock',\n 'src/python/pants/util:socket',\n ]\n)\n\npython_tests(\n name = 'strutil',\n sources = ['test_strutil.py'],\n dependencies = [\n '3rdparty/python:future',\n 'src/python/pants/util:strutil',\n ]\n)\n\npython_tests(\n name = 'tarutil',\n sources = ['test_tarutil.py'],\n dependencies = [\n '3rdparty/python:future',\n 'src/python/pants/util:dirutil',\n 'src/python/pants/util:tarutil',\n ]\n)\n\npython_library(\n name='xml_test_base',\n sources = ['xml_test_base.py'],\n dependencies = [\n 'src/python/pants/util:contextutil',\n ]\n)\n\npython_tests(\n name = 'xml_parser',\n sources = ['test_xml_parser.py'],\n dependencies = [\n 'src/python/pants/util:xml_parser',\n 'tests/python/pants_test/util:xml_test_base',\n ]\n)\n"
size: 104, obj: SourcesField(address=BuildFileAddress(tests/python/pants_test/util/BUILD, strutil), input_globs=['test_strutil.py'], arg=sources, filespecs={'globs': ['test_strutil.py']})
size: 113, obj: 0bca1bd28a58382f15433f674785f7abe953de551fc8b771d851f4b411c33130
00:59:56 [INFO] Starting tests: tests/python/pants_test/util:strutil
size: 113, obj: b97c495d470523f7ab695796c723aafc77f9f5e50eeb4e02ed24c9ade45b6411
size: 113, obj: b97c495d470523f7ab695796c723aafc77f9f5e50eeb4e02ed24c9ade45b6411
size: 1022, obj: b"# Copyright 2014 Pants project contributors (see CONTRIBUTORS.md).\n# Licensed under the Apache License, Version 2.0 (see LICENSE).\n\n# see/edit requirements.txt in this directory to change deps.\npython_requirements()\n\n# Only used by tests, so we lift this library out of the requirements.txt\n# file used to bootstrap pants itself.\npython_requirement_library(\n name='antlr-3.1.3',\n requirements=[\n # TODO: this library is not currently linked from pypi, so we override the repository\n # to fetch it from antlr.org instead. If at any point it reappears on pypi, the\n # repository arg can be removed.\n python_requirement('antlr_python_runtime==3.1.3',\n repository='http://www.antlr3.org/download/Python/')\n ]\n)\n\n# Only used by a maintenance tool, so we lift this library out of the requirements.txt\n# file used to bootstrap pants itself.\npython_requirement_library(\n name='s3logparse',\n requirements=[\n python_requirement('s3-log-parse==0.1.1')\n ]\n)\n"
size: 113, obj: 21669944f59fbbeac3ec91be76bb960f377058f627c1347373b642f459e8da69
size: 113, obj: 21669944f59fbbeac3ec91be76bb960f377058f627c1347373b642f459e8da69
size: 3591, obj: b"# Copyright 2014 Pants project contributors (see CONTRIBUTORS.md).\n# Licensed under the Apache License, Version 2.0 (see LICENSE).\n\npython_library(\n name = 'argutil',\n sources = ['argutil.py'],\n)\n\npython_library(\n name = 'contextutil',\n sources = ['contextutil.py'],\n dependencies = [\n '3rdparty/python:ansicolors',\n '3rdparty/python:future',\n ':dirutil',\n ':tarutil',\n ],\n)\n\npython_library(\n name = 'collections',\n sources = ['collections.py'],\n dependencies = [\n '3rdparty/python:future',\n ]\n)\n\npython_library(\n name = 'collections_abc_backport',\n sources = ['collections_abc_backport.py'],\n dependencies = [\n '3rdparty/python:future',\n ]\n)\n\npython_library(\n name = 'debug',\n sources = ['debug.py'],\n dependencies = [\n '3rdparty/python:future',\n ],\n)\n\npython_library(\n name = 'desktop',\n sources = ['desktop.py'],\n dependencies = [\n ':osutil',\n ':process_handler',\n ],\n)\n\npython_library(\n name = 'dirutil',\n sources = ['dirutil.py'],\n dependencies = [\n ':strutil',\n '3rdparty/python:future',\n 'src/python/pants/base:deprecated',\n ],\n)\n\npython_library(\n name = 'eval',\n sources = ['eval.py'],\n dependencies = [\n '3rdparty/python:future',\n ]\n)\n\npython_library(\n name = 'fileutil',\n sources = ['fileutil.py'],\n dependencies = [\n '3rdparty/python:future',\n ':contextutil',\n ],\n)\n\npython_library(\n name = 'filtering',\n sources = ['filtering.py'],\n dependencies = [\n '3rdparty/python:future',\n ]\n)\n\npython_library(\n name = 'memo',\n sources = ['memo.py'],\n dependencies = [\n ':meta'\n ],\n)\n\npython_library(\n name = 'meta',\n sources = ['meta.py'],\n dependencies = [\n '3rdparty/python:future',\n ]\n)\n\npython_library(\n name = 'netrc',\n sources = ['netrc.py'],\n dependencies = [\n '3rdparty/python:future',\n ]\n)\n\npython_library(\n name = 'objects',\n sources = ['objects.py'],\n dependencies = [\n '3rdparty/python/twitter/commons:twitter.common.collections',\n '3rdparty/python:future',\n ':collections_abc_backport',\n ':memo',\n ':meta',\n ],\n)\n\npython_library(\n name = 'osutil',\n sources = ['osutil.py'],\n dependencies = [\n '3rdparty/python:future',\n ]\n)\n\npython_library(\n name = 'process_handler',\n sources = ['process_handler.py'],\n dependencies= [\n '3rdparty/python:future',\n '3rdparty/python:subprocess32',\n ':meta',\n ]\n)\n\npython_library(\n name = 'py2_compat',\n sources = ['py2_compat.py'],\n dependencies= [\n '3rdparty/python:future',\n '3rdparty/python:configparser',\n ]\n)\n\npython_library(\n name = 'retry',\n sources = ['retry.py'],\n dependencies = [\n '3rdparty/python:future',\n ]\n)\n\npython_library(\n name = 'rwbuf',\n sources = ['rwbuf.py'],\n dependencies = [\n '3rdparty/python:future',\n '3rdparty/python:six',\n ]\n)\n\npython_library(\n name = 's3_log_aggregator',\n sources = ['s3_log_aggregator.py'],\n dependencies = [\n '3rdparty/python:future',\n '3rdparty/python:s3logparse'\n ]\n)\n\npython_binary(\n name = 's3_log_aggregator_bin',\n entry_point = 'pants.util.s3_log_aggregator',\n dependencies = [\n ':s3_log_aggregator'\n ]\n)\n\npython_library(\n name = 'socket',\n sources = ['socket.py'],\n dependencies = [\n '3rdparty/python:future',\n ]\n)\n\npython_library(\n name = 'strutil',\n sources = ['strutil.py'],\n dependencies = [\n '3rdparty/python:future',\n ],\n)\n\npython_library(\n name = 'tarutil',\n sources = ['tarutil.py'],\n dependencies = [\n '3rdparty/python:future',\n '3rdparty/python:six',\n ],\n)\n\npython_library(\n name = 'xml_parser',\n sources = ['xml_parser.py'],\n)\n"
size: 104, obj: SourcesField(address=BuildFileAddress(src/python/pants/util/BUILD, strutil), input_globs=['strutil.py'], arg=sources, filespecs={'globs': ['strutil.py']})
size: 104, obj: SourcesField(address=BuildFileAddress(3rdparty/python/BUILD, requirements.txt), input_globs=['requirements.txt'], arg=sources, filespecs={'globs': ['requirements.txt']})
size: 113, obj: 8b1ad473452d6934c321fd40f75802363d013ef380a60088db3c557606c851a0
size: 113, obj: e30ef99c810afc880ee30d4b4e8aeb3998529ebb5baf66253e5a2614060ff84a
size: 111, obj: https://github.com/pantsbuild/pex/releases/download/v1.6.6/pex
size: 113, obj: 61bb79384db0da8c844678440bd368bcbfac17bbdb865721ad3f9cb0ab29b629
size: 113, obj: fe5bd60f2b36c22e3782679967b750a03f8e4b0080508f42723d6b53bdc46596
size: 120, obj: ExecuteProcessRequest(argv<HashableTypedCollection(Exactly(str))>=('/Users/eric/DocsLocal/code/projects/pants/build-support/pants_dev_deps.py36.venv/bin/python', './pex', '-e', 'pytest:main', '-o', 'pytest-with-requirements.pex', '--interpreter-constraint', 'CPython==3.6.8', 'future==0.17.1', "more-itertools<6.0.0 ; python_version<'3'", 'pytest-cov>=2.4,<2.5', 'pytest-timeout>=1.2,<1.3', 'pytest>=3.0.7,<3.7', 'unittest2>=0.6.0,<=1.9.0'), input_files<Exactly(Digest)>=Digest(fingerprint=fe5bd60f2b36c22e3782679967b750a03f8e4b0080508f42723d6b53bdc46596, serialized_bytes_length=81), description<Exactly(str)>=Resolve requirements for tests/python/pants_test/util:strutil, env<HashableTypedCollection(Exactly(str))>=('PATH', '/Users/eric/DocsLocal/code/projects/pants/build-support/pants_dev_deps.py36.venv/bin:/usr/local/opt/openssl/bin:/Users/eric/.pyenv/shims:/Users/eric/.cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/Users/eric/.local/bin'), output_files<HashableTypedCollection(Exactly(str))>=('pytest-with-requirements.pex',), output_directories<HashableTypedCollection(Exactly(str))>=(), timeout_seconds<Exactly(float or int)>=900, jdk_home<Exactly(str or NoneType)>=None)
size: 296, obj: /Users/eric/DocsLocal/code/projects/pants/build-support/pants_dev_deps.py36.venv/bin:/usr/local/opt/openssl/bin:/Users/eric/.pyenv/shims:/Users/eric/.cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/Users/eric/.local/bin
size: 113, obj: fe5bd60f2b36c22e3782679967b750a03f8e4b0080508f42723d6b53bdc46596
size: 110, obj: Resolve requirements for tests/python/pants_test/util:strutil
size: 140, obj: /Users/eric/DocsLocal/code/projects/pants/build-support/pants_dev_deps.py36.venv/bin/python
size: 113, obj: 561670e6ce2f3c4239eaef5ed9501a88b402b8d7aae94d91c9c6debf74ca2341
size: 113, obj: 0bca1bd28a58382f15433f674785f7abe953de551fc8b771d851f4b411c33130
size: 113, obj: e0133f116e2922d74a32b975293198ded5b0d0c26f3cde574c7a97f9b5b10f79
size: 113, obj: 8b1ad473452d6934c321fd40f75802363d013ef380a60088db3c557606c851a0
size: 113, obj: 0e89695a4283e2b81addf65462ccc01afe9192dfa752665fe7a7effbdb3cb359
size: 113, obj: e30ef99c810afc880ee30d4b4e8aeb3998529ebb5baf66253e5a2614060ff84a
size: 113, obj: 35c978fc20f466f02bb94727ef4c0f83c44ee20224bf672407f86661f300541d
size: 113, obj: e0133f116e2922d74a32b975293198ded5b0d0c26f3cde574c7a97f9b5b10f79
size: 113, obj: 0e89695a4283e2b81addf65462ccc01afe9192dfa752665fe7a7effbdb3cb359
size: 113, obj: 35c978fc20f466f02bb94727ef4c0f83c44ee20224bf672407f86661f300541d
size: 113, obj: b429c3b18636a52ef989837d79a6b942c41b9d08c9c4ce5bd9db6457efc09d85
size: 113, obj: b429c3b18636a52ef989837d79a6b942c41b9d08c9c4ce5bd9db6457efc09d85
size: 4000, obj: b'# coding=utf-8\n# Copyright 2014 Pants project contributors (see CONTRIBUTORS.md).\n# Licensed under the Apache License, Version 2.0 (see LICENSE).\n\nfrom __future__ import absolute_import, division, print_function, unicode_literals\n\nimport re\nimport shlex\nfrom builtins import bytes, str\n\nfrom future.utils import PY3\n\n\ndef ensure_binary(text_or_binary):\n if isinstance(text_or_binary, bytes):\n return text_or_binary\n elif isinstance(text_or_binary, str):\n return text_or_binary.encode(\'utf8\')\n else:\n raise TypeError(\'Argument is neither text nor binary type.({})\'.format(type(text_or_binary)))\n\n\ndef ensure_text(text_or_binary):\n if isinstance(text_or_binary, bytes):\n return text_or_binary.decode(\'utf-8\')\n elif isinstance(text_or_binary, str):\n return text_or_binary\n else:\n raise TypeError(\'Argument is neither text nor binary type ({})\'.format(type(text_or_binary)))\n\n\ndef is_text_or_binary(obj):\n return isinstance(obj, (str, bytes))\n\n\ndef safe_shlex_split(text_or_binary):\n """Split a string using shell-like syntax.\n\n Safe even on python versions whose shlex.split() method doesn\'t accept unicode.\n """\n value = ensure_text(text_or_binary) if PY3 else ensure_binary(text_or_binary)\n return shlex.split(value)\n\n\n# `_shell_unsafe_chars_pattern` and `shell_quote` are modified from the CPython 3.6 source:\n# https://github.com/python/cpython/blob/142e3c08a40c75b5788474b0defe7d5c0671f675/Lib/shlex.py#L308\n_shell_unsafe_chars_pattern = re.compile(r\'[^\\w@%+=:,./-]\').search\n\n\ndef shell_quote(s):\n """Return a shell-escaped version of the string *s*."""\n if not s:\n return "\'\'"\n if _shell_unsafe_chars_pattern(s) is None:\n return s\n\n # use single quotes, and put single quotes into double quotes\n # the string $\'b is then quoted as \'$\'"\'"\'b\'\n return "\'" + s.replace("\'", "\'\\"\'\\"\'") + "\'"\n\n\ndef safe_shlex_join(arg_list):\n """Join a list of strings into a shlex-able string.\n\n Shell-quotes each argument with `shell_quote()`.\n """\n return \' \'.join(shell_quote(arg) for arg in arg_list)\n\n\ndef create_path_env_var(new_entries, env=None, env_var=\'PATH\', delimiter=\':\', prepend=False):\n """Join path entries, combining with an environment variable if specified."""\n if env is None:\n env = {}\n\n prev_path = env.get(env_var, None)\n if prev_path is None:\n path_dirs = list()\n else:\n path_dirs = list(prev_path.split(delimiter))\n\n new_entries_list = list(new_entries)\n\n if prepend:\n path_dirs = new_entries_list + path_dirs\n else:\n path_dirs += new_entries_list\n\n return delimiter.join(path_dirs)\n\n\ndef camelcase(string):\n """Convert snake casing (containing - or _ characters) to camel casing."""\n return \'\'.join(word.capitalize() for word in re.split(\'[-_]\', string))\n\n\ndef pluralize(count, item_type):\n """Pluralizes the item_type if the count does not equal one.\n\n For example `pluralize(1, \'apple\')` returns \'1 apple\',\n while `pluralize(0, \'apple\') returns \'0 apples\'.\n\n :return The count and inflected item_type together as a string\n :rtype string\n """\n def pluralize_string(x):\n if x.endswith(\'s\'):\n return x + \'es\'\n else:\n return x + \'s\'\n\n text = \'{} {}\'.format(count, item_type if count == 1 else pluralize_string(item_type))\n return text\n\n\ndef strip_prefix(string, prefix):\n """Returns a copy of the string from which the multi-character prefix has been stripped.\n\n Use strip_prefix() instead of lstrip() to remove a substring (instead of individual characters)\n from the beginning of a string, if the substring is present. lstrip() does not match substrings\n but rather treats a substring argument as a set of characters.\n\n :param str string: The string from which to strip the specified prefix.\n :param str prefix: The substring to strip from the left of string, if present.\n :return: The string with prefix stripped from the left, if present.\n :rtype: string\n """\n if string.startswith(prefix):\n return string[len(prefix):]\n else:\n return string\n'
size: 2540, obj: b"# coding=utf-8\n# Copyright 2014 Pants project contributors (see CONTRIBUTORS.md).\n# Licensed under the Apache License, Version 2.0 (see LICENSE).\n\nfrom __future__ import absolute_import, division, print_function, unicode_literals\n\nimport unittest\nfrom builtins import bytes\n\nfrom pants.util.strutil import camelcase, ensure_binary, ensure_text, pluralize, strip_prefix\n\n\n# TODO(Eric Ayers): Backfill tests for other methods in strutil.py\nclass StrutilTest(unittest.TestCase):\n\n def test_camelcase(self):\n\n self.assertEqual('Foo', camelcase('foo'))\n self.assertEqual('Foo', camelcase('_foo'))\n self.assertEqual('Foo', camelcase('foo_'))\n self.assertEqual('FooBar', camelcase('foo_bar'))\n self.assertEqual('FooBar', camelcase('foo_bar_'))\n self.assertEqual('FooBar', camelcase('_foo_bar'))\n self.assertEqual('FooBar', camelcase('foo__bar'))\n self.assertEqual('Foo', camelcase('-foo'))\n self.assertEqual('Foo', camelcase('foo-'))\n self.assertEqual('FooBar', camelcase('foo-bar'))\n self.assertEqual('FooBar', camelcase('foo-bar-'))\n self.assertEqual('FooBar', camelcase('-foo-bar'))\n self.assertEqual('FooBar', camelcase('foo--bar'))\n self.assertEqual('FooBar', camelcase('foo-_bar'))\n\n def test_pluralize(self):\n self.assertEqual('1 bat', pluralize(1, 'bat'))\n self.assertEqual('1 boss', pluralize(1, 'boss'))\n self.assertEqual('2 bats', pluralize(2, 'bat'))\n self.assertEqual('2 bosses', pluralize(2, 'boss'))\n self.assertEqual('0 bats', pluralize(0, 'bat'))\n self.assertEqual('0 bosses', pluralize(0, 'boss'))\n\n def test_ensure_text(self):\n bytes_val = bytes(bytearray([0xe5, 0xbf, 0xab]))\n self.assertEqual(u'\xe5\xbf\xab', ensure_text(bytes_val))\n with self.assertRaises(TypeError):\n ensure_text(45)\n\n def test_ensure_binary(self):\n unicode_val = u'\xe5\xbf\xab'\n self.assertEqual(bytearray([0xe5, 0xbf, 0xab]), ensure_binary(unicode_val))\n with self.assertRaises(TypeError):\n ensure_binary(45)\n\n def test_strip_prefix(self):\n self.assertEqual('testString', strip_prefix('testString', '//'))\n self.assertEqual('/testString', strip_prefix('/testString', '//'))\n self.assertEqual('testString', strip_prefix('//testString', '//'))\n self.assertEqual('/testString', strip_prefix('///testString', '//'))\n self.assertEqual('//testString', strip_prefix('////testString', '//'))\n self.assertEqual('test//String', strip_prefix('test//String', '//'))\n self.assertEqual('testString//', strip_prefix('testString//', '//'))\n"
size: 945, obj: b"ansicolors==1.0.2\nasttokens==1.1.13\nbeautifulsoup4>=4.6.0,<4.7\ncffi==1.11.5\nconfigparser==3.7.1 ; python_version<'3'\ncontextlib2==0.5.5\ncoverage>=4.5,<4.6\ndocutils==0.14\nfasteners==0.14.1\nfaulthandler==2.6 ; python_version<'3'\nfuture==0.17.1\nfutures==3.0.5 ; python_version<'3'\nMarkdown==2.1.1\nmock==2.0.0\n# TODO(6282): once we can upgrade Pytest to 4.2.1+, we can remove the more-itertools requirement\nmore-itertools<6.0.0 ; python_version<'3'\npackaging==16.8\nparameterized==0.6.1\npathspec==0.5.9\npex==1.6.7\npsutil==5.4.8\npycodestyle==2.4.0\npyflakes==2.0.0\nPygments==2.3.1\npyopenssl==17.3.0\npystache==0.5.3\npytest-cov>=2.5,<2.6\npytest>=3.4,<4.0\npython-Levenshtein==0.12.0\npywatchman==1.4.1\nPyYAML==5.1\npy_zipkin==0.17.0\nrequests[security]>=2.20.1\nresponses==0.10.4\nscandir==1.2\nsetproctitle==1.1.10\nsetuptools==40.6.3\nsix>=1.9.0,<2\nsubprocess32==3.2.7 ; python_version<'3'\nwheel==0.31.1\nwww-authenticate==0.9.2\n"
size: 120, obj: ExecuteProcessRequest(argv<HashableTypedCollection(Exactly(str))>=('/usr/bin/touch', 'pants/__init__.py', 'pants/util/__init__.py', 'pants_test/__init__.py', 'pants_test/util/__init__.py'), input_files<Exactly(Digest)>=Digest(fingerprint=b429c3b18636a52ef989837d79a6b942c41b9d08c9c4ce5bd9db6457efc09d85, serialized_bytes_length=254), description<Exactly(str)>=Inject empty __init__.py into all packages without one already., env<HashableTypedCollection(Exactly(str))>=(), output_files<HashableTypedCollection(Exactly(str))>=('pants/__init__.py', 'pants/util/__init__.py', 'pants_test/__init__.py', 'pants_test/util/__init__.py'), output_directories<HashableTypedCollection(Exactly(str))>=(), timeout_seconds<Exactly(float or int)>=900, jdk_home<Exactly(str or NoneType)>=None)
size: 113, obj: b429c3b18636a52ef989837d79a6b942c41b9d08c9c4ce5bd9db6457efc09d85
size: 112, obj: Inject empty __init__.py into all packages without one already.
size: 113, obj: 5771c0d6a26ae386e4e38353a87db8dd953cf456af11a46e3b1822f5081f5545
size: 113, obj: b429c3b18636a52ef989837d79a6b942c41b9d08c9c4ce5bd9db6457efc09d85
size: 113, obj: 561670e6ce2f3c4239eaef5ed9501a88b402b8d7aae94d91c9c6debf74ca2341
size: 113, obj: 5771c0d6a26ae386e4e38353a87db8dd953cf456af11a46e3b1822f5081f5545
size: 113, obj: 01073092b21714276bdd987fcdd51e4b63be3feb963f3ba72668fd8203142c9a
size: 120, obj: ExecuteProcessRequest(argv<HashableTypedCollection(Exactly(str))>=('/Users/eric/DocsLocal/code/projects/pants/build-support/pants_dev_deps.py36.venv/bin/python', './pytest-with-requirements.pex'), input_files<Exactly(Digest)>=Digest(fingerprint=01073092b21714276bdd987fcdd51e4b63be3feb963f3ba72668fd8203142c9a, serialized_bytes_length=363), description<Exactly(str)>=Run pytest for tests/python/pants_test/util:strutil, env<HashableTypedCollection(Exactly(str))>=('PATH', '/Users/eric/DocsLocal/code/projects/pants/build-support/pants_dev_deps.py36.venv/bin:/usr/local/opt/openssl/bin:/Users/eric/.pyenv/shims:/Users/eric/.cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/Users/eric/.local/bin'), output_files<HashableTypedCollection(Exactly(str))>=(), output_directories<HashableTypedCollection(Exactly(str))>=(), timeout_seconds<Exactly(float or int)>=900, jdk_home<Exactly(str or NoneType)>=None)
size: 296, obj: /Users/eric/DocsLocal/code/projects/pants/build-support/pants_dev_deps.py36.venv/bin:/usr/local/opt/openssl/bin:/Users/eric/.pyenv/shims:/Users/eric/.cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/Users/eric/.local/bin
size: 113, obj: 01073092b21714276bdd987fcdd51e4b63be3feb963f3ba72668fd8203142c9a
size: 100, obj: Run pytest for tests/python/pants_test/util:strutil
size: 140, obj: /Users/eric/DocsLocal/code/projects/pants/build-support/pants_dev_deps.py36.venv/bin/python
size: 493, obj: b'============================= test session starts ==============================\nplatform darwin -- Python 3.6.8, pytest-3.6.4, py-1.8.0, pluggy-0.7.1\nrootdir: /Users/eric/DocsLocal/code/projects/pants/.pants.d/process-executionjHHFpe, inifile:\nplugins: timeout-1.2.1, cov-2.4.0\ncollected 5 items\n\npants_test/util/test_strutil.py ..... [100%]\n\n=========================== 5 passed in 0.10 seconds ===========================\n'
size: 113, obj: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment