1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- """Utility functions for the benchmarks."""
- import os
- import subprocess
- from pathlib import Path
- import httpx
- from httpx import HTTPError
- def get_python_version(venv_path: 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 = (
- venv_path / "bin" / "python"
- if "windows" not in os_name
- else venv_path / "Scripts" / "python.exe"
- )
- try:
- output = subprocess.check_output(
- [str(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: Path):
- """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 = Path(dirpath) / f
- total_size += fp.stat().st_size
- 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}"
- )
|