#!/usr/bin/env python3
-# © Copyright 2021-2022, Scott Gasch
+# © Copyright 2021-2023, Scott Gasch
"""Miscellaneous utilities."""
import os
+import random
import sys
Returns:
True if a debugger is attached, False otherwise.
"""
- gettrace = getattr(sys, 'gettrace', lambda: None)
+ 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()