#!/usr/bin/env python3
-# © Copyright 2021-2022, Scott Gasch
+# © Copyright 2021-2023, Scott Gasch
"""Miscellaneous utilities."""
import os
+import random
import sys
def is_running_as_root() -> bool:
- """Returns True if running as root.
+ """
+ Returns:
+ True if running as root, False otherwise.
>>> is_running_as_root()
False
def debugger_is_attached() -> bool:
- """Return if the debugger is attached"""
-
- gettrace = getattr(sys, 'gettrace', lambda: None)
+ """
+ Returns:
+ True if a debugger is attached, False otherwise.
+ """
+ gettrace = getattr(sys, "gettrace", lambda: None)
return gettrace() is not None
-if __name__ == '__main__':
+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()