12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- """Utility functions for the benchmarks."""
- import os
- import subprocess
- import httpx
- from httpx import HTTPError
- def get_python_version(venv_path, os_name):
- """Get the python version of python in a virtual env.
- Args:
- venv_path: Path to virtual environment.
- os_name: Name of os.
- Returns:
- The python version.
- """
- python_executable = (
- os.path.join(venv_path, "bin", "python")
- if "windows" not in os_name
- else os.path.join(venv_path, "Scripts", "python.exe")
- )
- try:
- output = subprocess.check_output(
- [python_executable, "--version"], stderr=subprocess.STDOUT
- )
- python_version = output.decode("utf-8").strip().split()[1]
- return ".".join(python_version.split(".")[:-1])
- except subprocess.CalledProcessError:
- return None
- def get_directory_size(directory):
- """Get the size of a directory in bytes.
- Args:
- directory: The directory to check.
- Returns:
- The size of the dir in bytes.
- """
- total_size = 0
- for dirpath, _, filenames in os.walk(directory):
- for f in filenames:
- fp = os.path.join(dirpath, f)
- total_size += os.path.getsize(fp)
- return total_size
- def send_data_to_posthog(event, properties):
- """Send data to PostHog.
- Args:
- event: The event to send.
- properties: The properties to send.
- Raises:
- HTTPError: When there is an error sending data to PostHog.
- """
- event_data = {
- "api_key": "phc_JoMo0fOyi0GQAooY3UyO9k0hebGkMyFJrrCw1Gt5SGb",
- "event": event,
- "properties": properties,
- }
- with httpx.Client() as client:
- response = client.post("https://app.posthog.com/capture/", json=event_data)
- if response.status_code != 200:
- raise HTTPError(
- f"Error sending data to PostHog: {response.status_code} - {response.text}"
- )
|