jgdv.debugging.trace_context

Functions

must_have_results(fn)

Classes

TraceContext

Utility to simplify using the trace library, as a context manager

TraceObj

TraceWriter

Module Contents

jgdv.debugging.trace_context.must_have_results(fn) <Unknown>[source]
Parameters:

fn (collections.abc.Callable[Concatenate[must_have_results.T, must_have_results.I], must_have_results.O])

Return type:

collections.abc.Callable[Concatenate[must_have_results.T, must_have_results.I], must_have_results.O]

class jgdv.debugging.trace_context.TraceContext(
*,
targets,
track,
logger=None,
cache=None,
timestamp=False,
log_fmts=None,
)[source]

Utility to simplify using the trace library, as a context manager

see https://docs.python.org/3/library/trace.html

Parameters:
_add_called(frame, curr) <Unknown>[source]
Parameters:
Return type:

jgdv.Maybe[TraceObj]

_add_timestamp() <Unknown>[source]
Return type:

None

_add_trace(curr) <Unknown>[source]
Parameters:

curr (TraceObj)

Return type:

None

_log(key, *args) <Unknown>[source]
Parameters:

key (str)

Return type:

None

_prepare_trace_for_writing(
filter=None,
*,
line_nums=False,
) <Unknown>[source]
Parameters:
  • filter (jgdv.Maybe[str])

  • line_nums (bool)

Return type:

dict[pathlib.Path, str]

_trace_call(frame) <Unknown>[source]
Parameters:

frame (jgdv.Frame)

Return type:

None

_trace_line(frame) <Unknown>[source]
Parameters:

frame (jgdv.Frame)

Return type:

None

_trace_return(frame) <Unknown>[source]
Parameters:

frame (jgdv.Frame)

Return type:

None

assert_called(name) <Unknown>[source]
Parameters:

name (str)

Return type:

None

assert_count(
package,
name,
*,
min=None,
max=None,
) <Unknown>[source]
Parameters:
  • package (str)

  • name (str)

  • min (jgdv.Maybe[int])

  • max (jgdv.Maybe[int])

Return type:

None

blacklist(*args) <Unknown>[source]

Add string’s to ignore to the context

Parameters:

args (str)

Return type:

Self

ignores(curr) <Unknown>[source]
Parameters:

curr (jgdv.Maybe[str | TraceObj])

Return type:

bool

sys_trace_h(frame, event, arg) <Unknown>[source]

The main handler method added to sys for tracing.

Parameters:
  • frame (jgdv.Frame)

  • event (jgdv.debugging._interface.TraceEvent)

  • arg (Any)

Return type:

jgdv.Maybe[collections.abc.Callable]

whitelist(*args) <Unknown>[source]
Parameters:

args (str)

Return type:

Self

write_coverage_dir(
*,
filter=None,
root,
) <Unknown>[source]

Write the coverage trace into a flat directory of files

Parameters:
Return type:

None

write_coverage_file(
*,
filter=None,
target,
) <Unknown>[source]

Write the coverage trace into a single file

Parameters:
Return type:

None

write_coverage_tree(
*,
filter=None,
root,
reroot=None,
) <Unknown>[source]

write the coverage trace into a tree of files

Parameters:
Return type:

None

_blacklist: list[str]
_formatter: TraceWriter
_logger: jgdv.Maybe[logging.Logger]
_whitelist: list[str]
_write_to: jgdv.Maybe[pathlib.Path]
cache: jgdv.Maybe[pathlib.Path]
called: set[str]
callers: collections.defaultdict[str, set[str]]
counts: collections.defaultdict[tuple[str, str], int]
lines: list[TraceObj]
log_fmts: dict[str, str]
timestamp: bool
trace: list[TraceObj]
trace_targets: tuple[jgdv.debugging._interface.TraceEvent, Ellipsis]
track_targets: tuple[str, Ellipsis]
class jgdv.debugging.trace_context.TraceObj(frame)[source]
Parameters:

frame (jgdv.Frame)

count: int
file: jgdv.Maybe[str]
func: str
property line: str[source]
Return type:

str

line_no: int
package: jgdv.Maybe[str]
class jgdv.debugging.trace_context.TraceWriter[source]
format_file_execution(
*,
file,
trace,
line_nums=False,
) <Unknown>[source]
Parameters:
Return type:

str

format_trace(trace) <Unknown>[source]
Parameters:

trace (list[TraceObj])

Return type:

str

exec_line: str
first_line: str
non_exec_line: str