"""Only public runtime dimensions needed by this stdlib sqlite3 workload."""
import hashlib
import json
import platform
import sqlite3
import sysconfig


def environment():
    try:
        release = platform.freedesktop_os_release()
    except OSError:
        release = {}
    connection = sqlite3.connect(":memory:")
    try:
        compile_options = sorted(row[0] for row in connection.execute("PRAGMA compile_options"))
        capabilities = {
            "connection_autocommit_attribute": hasattr(connection, "autocommit"),
            "legacy_transaction_control_constant": hasattr(sqlite3, "LEGACY_TRANSACTION_CONTROL"),
            "default_isolation_level": connection.isolation_level,
            "default_in_transaction": connection.in_transaction,
            "default_autocommit": getattr(connection, "autocommit", "unavailable"),
        }
        source_id = connection.execute("SELECT sqlite_source_id()").fetchone()[0]
    finally:
        connection.close()
    return {
        "system": platform.system(),
        "machine": platform.machine(),
        "python_version": platform.python_version(),
        "python_implementation": platform.python_implementation(),
        "python_abi": sysconfig.get_config_var("SOABI"),
        "libc": list(platform.libc_ver()),
        "os_release": {key: release.get(key, "") for key in ("ID", "VERSION_ID")},
        "sqlite_version": sqlite3.sqlite_version,
        "sqlite_source_id": source_id,
        "sqlite_compile_options_sha256": hashlib.sha256(json.dumps(compile_options, separators=(",", ":")).encode()).hexdigest(),
        "sqlite_capabilities": capabilities,
        "packages": {},
        "package_scope": "No third-party packages used or inventoried; standard-library sqlite3 only",
    }


if __name__ == "__main__":
    print(json.dumps(environment(), sort_keys=True, ensure_ascii=False))
