Files
2026-07-13 12:25:07 +08:00

81 lines
4.0 KiB
Python

# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
# ┃ ██████ ██████ ██████ █ █ █ █ █ █▄ ▀███ █ ┃
# ┃ ▄▄▄▄▄█ █▄▄▄▄▄ ▄▄▄▄▄█ ▀▀▀▀▀█▀▀▀▀▀ █ ▀▀▀▀▀█ ████████▌▐███ ███▄ ▀█ █ ▀▀▀▀▀ ┃
# ┃ █▀▀▀▀▀ █▀▀▀▀▀ █▀██▀▀ ▄▄▄▄▄ █ ▄▄▄▄▄█ ▄▄▄▄▄█ ████████▌▐███ █████▄ █ ▄▄▄▄▄ ┃
# ┃ █ ██████ █ ▀█▄ █ ██████ █ ███▌▐███ ███████▄ █ ┃
# ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
# ┃ Copyright (c) 2017, the Perspective Authors. ┃
# ┃ ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ ┃
# ┃ This file is part of the Perspective library, distributed under the terms ┃
# ┃ of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). ┃
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
import os
import subprocess
from bench import VirtualEnvHandler
import logging
if __name__ == "__main__":
"""Benchmark the `perspective-python` runtime locally."""
VERSIONS = [
"master",
"2.7.0",
"2.6.0",
"2.5.0",
"2.4.0",
"2.3.2",
"2.3.1",
# "2.3.0",
"2.2.1",
"2.2.0",
]
# Access the benchmark virtualenv
HERE = os.path.abspath(os.path.dirname(__file__))
VIRTUALENV_NAME = "benchmark_venv"
VIRTUALENV_PATH = os.path.join(HERE, "..", "..", "..", "..", VIRTUALENV_NAME)
venv_handler = VirtualEnvHandler(VIRTUALENV_PATH)
print("Benchmarking perspective-python==master")
logging.info(venv_handler.activate_virtualenv())
env = {k: v for (k, v) in os.environ.items()}
env["PSP_VERSION"] = "master"
subprocess.check_output(
"python3 {}/perspective_benchmark.py master".format(HERE),
shell=True,
env=env,
)
# Run previous versions in virtualenv
if not venv_handler.virtualenv_exists():
venv_handler.create_virtualenv()
last_version = "master"
for version in VERSIONS[1:]:
env["PSP_VERSION"] = version
env["PYTHONPATH"] = ""
logging.info("Uninstalling perspective-python=={}".format(last_version))
last_version = version
logging.debug(
subprocess.check_output(
"{} && yes | python3 -m pip uninstall perspective-python".format(venv_handler.activate_virtualenv()),
shell=True,
env=env,
)
)
logging.info("Installing perspective-python=={}".format(version))
logging.debug(
subprocess.check_output(
"{} && yes | python3 -m pip install perspective-python[dev]=={}".format(venv_handler.activate_virtualenv(), version),
shell=True,
env=env,
)
)
logging.info("Benchmarking perspective-python=={}".format(version))
subprocess.check_output(
"{} && python3 {}/perspective_benchmark.py {}".format(venv_handler.activate_virtualenv(), HERE, version),
shell=True,
env=env,
)