#!/usr/bin/env python3
# © Copyright 2021-2023, Scott Gasch
"""Miscellaneous utilities."""
import os
import random
import sys
[docs]def is_running_as_root() -> bool:
"""
Returns:
True if running as root, False otherwise.
>>> is_running_as_root()
False
"""
return os.geteuid() == 0
[docs]def debugger_is_attached() -> bool:
"""
Returns:
True if a debugger is attached, False otherwise.
"""
gettrace = getattr(sys, "gettrace", lambda: None)
return gettrace() is not None
[docs]def execute_probabilistically(probability_to_execute: float) -> bool:
"""
Args:
probability_to_execute: the probability of returning True.
Returns:
True with a given probability.
>>> random.seed(22)
>>> execute_probabilistically(50.0)
False
>>> execute_probabilistically(50.0)
True
"""
return random.uniform(0.0, 100.0) < probability_to_execute
if __name__ == "__main__":
import doctest
doctest.testmod()