Skip to content
1 change: 1 addition & 0 deletions pyperformance/data-files/benchmarks/MANIFEST
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ pickle_dict <local:pickle>
pickle_list <local:pickle>
pickle_pure_python <local:pickle>
pidigits <local>
pprint <local>
pyflate <local>
python_startup <local>
python_startup_no_site <local:python_startup>
Expand Down
9 changes: 9 additions & 0 deletions pyperformance/data-files/benchmarks/bm_pprint/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[project]
name = "pyperformance_bm_pprint"
requires-python = ">=3.8"
dependencies = ["pyperf"]
urls = {repository = "https://github.com/python/pyperformance"}
dynamic = ["version"]

[tool.pyperformance]
name = "pprint"
23 changes: 23 additions & 0 deletions pyperformance/data-files/benchmarks/bm_pprint/run_benchmark.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
"""Test the performance of pprint.PrettyPrinter.

This benchmark was available as `python -m pprint` until Python 3.12.

Authors: Fred Drake (original), Oleg Iarygin (pyperformance port).
"""

import pyperf
from pprint import PrettyPrinter


printable = [('string', (1, 2), [3, 4], {5: 6, 7: 8})] * 100_000
p = PrettyPrinter()


if __name__ == '__main__':
runner = pyperf.Runner()
runner.metadata['description'] = 'pprint benchmark'

if hasattr(p, '_safe_repr'):
runner.bench_func('pprint_safe_repr', p._safe_repr,
printable, {}, None, 0)
runner.bench_func('pprint_pformat', p.pformat, printable)