X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=src%2Fpyutils%2Fbootstrap.py;h=22526e4436669ff30924ebc7fcee6bf4cda7db66;hb=06aed70c0ceefccc830d8f77e0f39a97ed05b898;hp=8dc4a0c0886b67b8fd8dad7835d51b468690566f;hpb=e4ac8bd15d47a236d8800d85a3c46ce013245c0e;p=pyutils.git diff --git a/src/pyutils/bootstrap.py b/src/pyutils/bootstrap.py index 8dc4a0c..22526e4 100644 --- a/src/pyutils/bootstrap.py +++ b/src/pyutils/bootstrap.py @@ -14,24 +14,24 @@ If you decorate your main method (i.e. program entry point) like this:: * 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 + enabled/disabled via the commandline flag :code:`--debug_unhandled_exceptions`), + * automatic logging support from :py:mod:`pyutils.logging_utils` 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`, + when you run your code using commandline flag :code:`--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 + :code:`--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 + :code:`--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, + using the :code:`--set_random_seed` flag, * automatic program timing and reporting logged to the INFO log, * more verbose error handling and reporting. @@ -271,9 +271,8 @@ def dump_all_objects() -> None: def initialize(entry_point): """ - Remember to initialize config, initialize logging, set/log a random - seed, etc... before running main. If you use this decorator around - your main, like this:: + Do whole program setup and instrumentation. See module comments for + details. To use:: from pyutils import bootstrap @@ -283,21 +282,6 @@ def initialize(entry_point): if __name__ == '__main__': main() - - You 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). """ @functools.wraps(entry_point)