| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #!/bin/sh
- # Read-only facts needed to select Linux Python wheels and the uv binary.
- printf '%s\n' '=== OS ==='
- if [ -r /etc/os-release ]; then
- awk -F= '$1 == "PRETTY_NAME" || $1 == "ID" || $1 == "ID_LIKE" || $1 == "VERSION_ID" { print }' /etc/os-release
- else
- printf '%s\n' 'os-release: unavailable'
- fi
- printf 'architecture: '; uname -m
- printf 'kernel: '; uname -r
- printf 'libc: '
- getconf GNU_LIBC_VERSION 2>/dev/null || printf '%s\n' 'unavailable'
- printf '%s\n' '=== Python ==='
- python_status=0
- if command -v python3.14 >/dev/null 2>&1; then
- if ! python3.14 - <<'PY'
- import sys
- import sysconfig
- import os
- import signal
- print('version:', sys.version.split()[0])
- print('executable:', sys.executable)
- print('cache_tag:', sys.implementation.cache_tag)
- print('soabi:', sysconfig.get_config_var('SOABI'))
- print('platform:', sysconfig.get_platform())
- try:
- fd = os.pidfd_open(os.getpid())
- try:
- signal.pidfd_send_signal(fd, 0)
- finally:
- os.close(fd)
- except (AttributeError, OSError) as exc:
- print('pidfd:', 'unavailable (' + type(exc).__name__ + ')')
- else:
- print('pidfd: available')
- PY
- then
- printf '%s\n' 'python3.14: inspection failed'
- python_status=1
- fi
- else
- printf '%s\n' 'python3.14: unavailable'
- python_status=1
- fi
- printf '%s\n' '=== NVIDIA ==='
- if command -v nvidia-smi >/dev/null 2>&1; then
- if nvidia-smi --query-gpu=name,driver_version,memory.total --format=csv,noheader; then
- nvidia-smi 2>/dev/null | sed -n '1,3p'
- else
- printf '%s\n' 'nvidia-smi: query failed'
- fi
- else
- printf '%s\n' 'nvidia-smi: unavailable'
- fi
- exit "$python_status"
|