28 |
__docformat__ = 'reStructuredText' |
__docformat__ = 'reStructuredText' |
29 |
|
|
30 |
class DebugFilter: |
class DebugFilter: |
31 |
"""Handle debug streams.""" |
""" |
32 |
|
Navidoc debug stream handler class. |
33 |
|
""" |
34 |
|
|
35 |
short = "d:D:" |
short = "d:D:" |
36 |
long = ["--dbg="] |
long = ["--dbg="] |
43 |
pass |
pass |
44 |
|
|
45 |
def enable(self, dbg_name): |
def enable(self, dbg_name): |
46 |
|
""" |
47 |
|
enable(self, dbg_name) |
48 |
|
|
49 |
|
Enables output of a named debug stream. |
50 |
|
""" |
51 |
self.output_enabled[dbg_name] = 1 |
self.output_enabled[dbg_name] = 1 |
52 |
|
|
53 |
def mute(self, dbg_name): |
def mute(self, dbg_name): |
54 |
|
""" |
55 |
|
mute(self, dbg_name) |
56 |
|
|
57 |
|
Mutes output of a named debug stream. |
58 |
|
""" |
59 |
self.output_enabled[dbg_name] = 0 |
self.output_enabled[dbg_name] = 0 |
60 |
|
|
61 |
def out(self, dbg_name, dbg_str): |
def out(self, dbg_name, dbg_str): |
62 |
|
""" |
63 |
|
out(self, dbg_name, dbg_str) |
64 |
|
|
65 |
|
Print string to a named debug stream. |
66 |
|
If the debug stream is muted, adds string into |
67 |
|
its buffer. |
68 |
|
""" |
69 |
if self.output_enabled.has_key(dbg_name) \ |
if self.output_enabled.has_key(dbg_name) \ |
70 |
and self.output_enabled[dbg_name]: |
and self.output_enabled[dbg_name]: |
71 |
print "[", dbg_name, "]", dbg_str |
print "[", dbg_name, "]", dbg_str |
75 |
self.buffer['dbg_name'].append(dbg_str) |
self.buffer['dbg_name'].append(dbg_str) |
76 |
|
|
77 |
def shorthand(self, dbg_name): |
def shorthand(self, dbg_name): |
78 |
|
""" |
79 |
|
shorthand(self, dbg_name) |
80 |
|
|
81 |
|
Return shorthand for use of a named debug stream. |
82 |
|
""" |
83 |
return lambda dbg_string, self=self, dbg_name=dbg_name: \ |
return lambda dbg_string, self=self, dbg_name=dbg_name: \ |
84 |
self.out(dbg_name, dbg_string) |
self.out(dbg_name, dbg_string) |
85 |
|
|
86 |
def flush(self, dbg_name): |
def flush(self, dbg_name): |
87 |
|
""" |
88 |
|
flush(self, dbg_name) |
89 |
|
|
90 |
|
Flush the buffer of a named debug stream. |
91 |
|
""" |
92 |
if self.buffer.has_key(dbg_name): |
if self.buffer.has_key(dbg_name): |
93 |
for line in self.buffer['dbg_name']: |
for line in self.buffer['dbg_name']: |
94 |
print "[", dbg_name, "]", line |
print "[", dbg_name, "]", line |