Helper module for creating simple Python 3 scripts
Project description
scripthelper
Helper module for simple command line Python scripts.
The documentation with inline examples can be found in pypi.
Basic usage
example1.py:
#!/usr/bin/env python3
import scripthelper
logger = scripthelper.bootstrap()
logger.critical("critical message")
logger.error("error message")
logger.warning("warning message")
logger.info("info message")
logger.verbose("verbose message")
logger.debug("debug message")
logger.spam("spam message")
It just works. Try --verbose
and --quiet
command line options, too.
It uses colored log messages on a terminal.
See --help
for more information.
Adding other command line parameters
example2.py:
#!/usr/bin/env python3
import scripthelper
scripthelper.add_argument("-n", "--name", help="Name to greet")
logger, args = scripthelper.bootstrap_args()
if args.name:
logger.debug("Name was provided")
logger.info(f"Hello {args.name}")
else:
logger.warning("Name was not provided")
Or:
example2b.py:
#!/usr/bin/env python3
import scripthelper
scripthelper.add_argument("--name", default="World")
logger = scripthelper.bootstrap()
name = scripthelper.args.name
logger.info(f"Hello {name}")
Progressbar works with logging, too
example3.py:
#!/usr/bin/env python3
import scripthelper
import time
logger = scripthelper.bootstrap()
logger.info("Doing the calculations...")
for i in scripthelper.progressbar(range(100)):
if i % 20 == 0:
logger.verbose(f"Iteration {i}")
if i % 5 == 0:
logger.debug(f"Iteration {i}")
if logger.isEnabledFor(scripthelper.SPAM):
logger.spam(f"Iteration {i}")
time.sleep(0.01)
logger.info("Done")
Extended log levels can be used in modules
example4.py:
#!/usr/bin/env python3
import scripthelper
import example4module
scripthelper.bootstrap()
example4module.do_the_things()
example4module.py:
#!/usr/bin/env python3
import scripthelper
logger = scripthelper.getLogger(__name__)
def do_the_things():
logger.verbose("Calling logger.verbose raises an exception if it does not work.")
logger.info("Hello from a module.")
You can easily preserve logs in files
example5.py:
#!/usr/bin/env python3
import scripthelper
logger = scripthelper.bootstrap()
scripthelper.setup_file_logging()
logger.critical("critical message")
logger.error("error message")
logger.warning("warning message")
logger.info("info message")
logger.verbose("verbose message")
logger.debug("debug message")
logger.spam("spam message")
It handles exceptions, warnings
example6.py:
#!/usr/bin/env python3
import scripthelper
scripthelper.bootstrap()
def uncaught_exception_test():
this_variable = "will be displayed in stack trace"
as_well_as = "the other variables"
raise RuntimeError("This exception should be handled.")
scripthelper.warn("This user warning will be captured.")
uncaught_exception_test()
(The local variables will be displayed in stack trace.)
Has built-in colored pretty printer
example7.py:
#!/usr/bin/env python3
import scripthelper
from dataclasses import dataclass
scripthelper.bootstrap()
@dataclass
class Item:
name: str
value: int
something = {
"string": "value1",
"bool": True,
"none": None,
"integer": 1234,
"item": Item("name", 999)
}
scripthelper.pp(something)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
scripthelper-22.9.1.tar.gz
(6.0 kB
view hashes)
Built Distribution
Close
Hashes for scripthelper-22.9.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 927e2c088fb7d84e60e414f819f863cddaef698c9873f284673c88662d35f10c |
|
MD5 | 2ae589d673a27f09ef004390f610e42b |
|
BLAKE2b-256 | 118b70930554f7a28841ec371ed5a851e83a2b96fc326ad9304ab168ce8c9efb |