| import os |
| import re |
| import sys |
| from subprocess import Popen |
| |
| _filename_re = re.compile(r"^bench_(.*?)\.py$") |
| bench_directory = os.path.abspath(os.path.dirname(__file__)) |
| |
| |
| def list_benchmarks(): |
| result = [] |
| for name in os.listdir(bench_directory): |
| match = _filename_re.match(name) |
| if match is not None: |
| result.append(match.group(1)) |
| result.sort(key=lambda x: (x.startswith("logging_"), x.lower())) |
| return result |
| |
| |
| def run_bench(name): |
| print(name) |
| Popen( |
| [sys.executable, "-m", "timeit", "-s", f"from bench_{name} import run", "run()"] |
| ).wait() |
| |
| |
| def main(): |
| print("=" * 80) |
| print("Running benchmark for MarkupSafe") |
| print("-" * 80) |
| os.chdir(bench_directory) |
| for bench in list_benchmarks(): |
| run_bench(bench) |
| print("-" * 80) |
| |
| |
| if __name__ == "__main__": |
| main() |