Debug logging

from alexandria3k import debug

Maintain debug state and output enabled messages.

Use example:

import debug

debug.set_flags(["parsing", "time"])
debug.log("flag_name", "Some message")
if debug.enable("flag_name") ...
debug.enabled(flag)

Check if the specified flag is enabled.

Parameters

flag (str) – Flag to check.

Returns

True if the specified flag is enabled.

Return type

bool

debug.log(flag, message, flush=True, end='\n')

Output the specified message if the corresponding flag is enabled.

Parameters
  • flag (str) – Flag that controls the message output.

  • message (str) – Message to output.

debug.set_flags(flags)

Enable the specified debug flags. The following flags are supported:

  • exception: Raise an exception when an error occurs;

  • files-read: Counts of Crossref data files read;

  • link: Record linking operations;

  • sql: Executed SQL statements;

  • perf: Performance timings;

  • progress: Report population progress;

  • progress_bar: Display a progress bar; (enabled through –progress)

  • sorted-tables: Topologically ordered Crossref query tables;

Parameters

flags (list) – Flags to enable.

debug.set_output(output_file)

Direct output to the specified output target.

Parameters

output_file (file object) – File object on which output the debug messages, e.g. sys.stderr.