| 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() |