Adds a __repr__ to graph.
[pyutils.git] / src / pyutils / misc_utils.py
index 632f1796a80126fbcc3fb17a062dcb34acb8570f..f2f098f30959b281815388dd46bf1804bd855353 100644 (file)
@@ -1,10 +1,11 @@
 #!/usr/bin/env python3
 
-# © Copyright 2021-2022, Scott Gasch
+# © Copyright 2021-2023, Scott Gasch
 
 """Miscellaneous utilities."""
 
 import os
+import random
 import sys
 
 
@@ -24,11 +25,29 @@ def debugger_is_attached() -> bool:
     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()