Examples
This page contains the raw code + output of our examples. For detailed explanations of what is going on please see the Quick Start guide.
Example 0 - Most Basic Example
This is the most basic example which demonstrates the most basic way to use LightweightDebugMessages.
Code Listing: Example 0
1#!/usr/bin/env python3
2from lightweightdebugmessages import LightweightDebugMessages
3
4
5
6class MyClass(LightweightDebugMessages):
7
8 def some_method(self):
9 print("some_method():")
10 self.debug_message(0, f"This is a normal message that should always be printed")
11 self.debug_message(2, f"This message is printed if debug_level is >= 2")
12 self.debug_message(5, f" This message is printed if debug_level is >= 5")
13 print("")
14 return
15
16
17
18# create an instance of the class
19data = MyClass()
20
21# Default debug_level is 0, so this prints only 1 message
22data.some_method()
23
24# Increase debug level:
25data.debug_level = 2
26data.some_method()
Output: Example 0
some_method():
This is a normal message that should always be printed
some_method():
This is a normal message that should always be printed
[D-2] This message is printed if debug_level is >= 2
Example 1 - Demonstrate Debug Level Use
Expands Example 0 to show different debug messages being printed.
Code Listing: Example 1
1#!/usr/bin/env python3
2from lightweightdebugmessages import LightweightDebugMessages
3
4
5
6class MyClass(LightweightDebugMessages):
7
8 def some_method(self):
9 for level in range(10):
10 self.debug_message(level, f"This message has debug level {level}")
11 return
12
13
14
15# create an instance of the class
16data = MyClass()
17
18# Demonstrate messages printed with debug_level = 0
19print(f"Test method using debug_level = {data.debug_level}:")
20data.some_method()
21print("")
22
23# Demonstrate messages printed with debug_level = 3
24data.debug_level = 3
25print(f"Test method using debug_level = {data.debug_level}:")
26data.some_method()
27print("")
28
29# Demonstrate messages printed with debug_level = 5
30data.debug_level = 5
31print(f"Test method using debug_level = {data.debug_level}:")
32data.some_method()
33print("")
Output: Example 1
Test method using debug_level = 0:
This message has debug level 0
Test method using debug_level = 3:
This message has debug level 0
[D-1] This message has debug level 1
[D-2] This message has debug level 2
[D-3] This message has debug level 3
Test method using debug_level = 5:
This message has debug level 0
[D-1] This message has debug level 1
[D-2] This message has debug level 2
[D-3] This message has debug level 3
[D-4] This message has debug level 4
[D-5] This message has debug level 5
Example 2 - Contol Messages via Command Line Argument
Shows a more complex example using
argparse
to control the visibility of debug messages using the command line by
adding the parameter --debug-level=N.
Code Listing: Example 2
1#!/usr/bin/env python3
2import argparse
3from lightweightdebugmessages import LightweightDebugMessages
4
5
6
7class MyClass(LightweightDebugMessages):
8
9 def __init__(self, program_options):
10 self.debug_level = program_options.debug_level
11
12 def some_method(self):
13 for level in range(10):
14 self.debug_message(level, f"This message has debug level {level}")
15 return
16
17
18
19def parse_args():
20 """
21 Parse command line arguments using argparse
22
23 Returns:
24 Namespace object containing the command line arguments.
25 """
26
27 def int_range(minval=0, maxval=5):
28 """ Helper: Sets an allowable range for an int parameter """
29
30 def int_range_checker(arg):
31 try:
32 output = int(arg)
33 except ValueError:
34 raise argparse.ArgumentTypeError("Must be an integer value")
35 if output < minval:
36 output = minval
37 if output > maxval:
38 output = maxval
39 return output
40
41 return int_range_checker
42
43 parser = argparse.ArgumentParser(description='Example')
44 required = parser.add_argument_group('Required Arguments')
45 optional = parser.add_argument_group('Optional Arguments')
46
47 optional.add_argument(
48 "--debug-level",
49 dest="debug_level",
50 action='store',
51 type=int_range(0, 5),
52 help='Debug Level [0..5]',
53 default=0
54 )
55
56 arguments = parser.parse_args()
57 return arguments
58
59
60
61# Parse the program options
62program_options = parse_args()
63
64# create an instance of the class
65data = MyClass(program_options)
66
67# Demonstrate messages printed with debug_level = 0
68print(f"Test method using debug_level = {data.debug_level}:")
69data.some_method()
70print("")
Output: Example 1
Test method using debug_level = 0:
This message has debug level 0