Improve documentation in bootstrap.py.
authorScott Gasch <[email protected]>
Fri, 14 Oct 2022 21:58:10 +0000 (14:58 -0700)
committerScott Gasch <[email protected]>
Fri, 14 Oct 2022 21:58:10 +0000 (14:58 -0700)
src/pyutils/bootstrap.py

index 5a596150201dcd10d32584c1f0524b55c7bce186..8dc4a0c0886b67b8fd8dad7835d51b468690566f 100644 (file)
@@ -2,21 +2,38 @@
 
 # © Copyright 2021-2022, Scott Gasch
 
-"""This is a module for wrapping around python programs and doing some
-minor setup and tear down work for them.  With it, you will get:
-
-* The ability to break into pdb on unhandled exceptions,
-* automatic support for :file:`config.py` (argument parsing)
-* automatic logging support for :file:`logging.py`,
-* the ability to enable code profiling,
-* the ability to enable module import auditing,
-* optional memory profiling for your program,
-* ability to set random seed via commandline,
-* automatic program timing and reporting,
-* more verbose error handling and reporting,
-
-Most of these are enabled and/or configured via commandline flags
-(see below).
+"""
+If you decorate your main method (i.e. program entry point) like this::
+
+    @bootstrap.initialize
+    def main():
+        whatever
+
+...you will get:
+
+    * automatic support for :py:mod:`pyutils.config` (argument parsing, see
+      that module for details),
+    * The ability to break into pdb on unhandled exceptions (which is
+      enabled/disabled via the commandline flag `--debug_unhandled_exceptions`),
+    * automatic logging support from :py:mod:`pyutils.logging` controllable
+      via several commandline flags,
+    * the ability to optionally enable whole-program code profiling and reporting
+      when you run your code using commandline flag `--run_profiler`,
+    * the ability to optionally enable import auditing via the commandline flag
+      `--audit_import_events`.  This logs a message whenever a module is imported
+      *after* the bootstrap module itself is loaded.  Note that other modules may
+      already be loaded when bootstrap is loaded and these imports will not be
+      logged.  If you're trying to debug import events or dependency problems,
+      I suggest putting bootstrap very early in your import list and using this
+      flag.
+    * optional memory profiling for your program set via the commandline flag
+      `--trace_memory`.  This provides a report of python memory utilization
+      at program termination time.
+    * the ability to set the global random seed via commandline flag for
+      reproducable runs (as long as subsequent code doesn't reset the seed)
+      using the `--set_random_seed` flag,
+    * automatic program timing and reporting logged to the INFO log,
+    * more verbose error handling and reporting.
 
 """