Logging#
The library logs through logging.getLogger("sidescanpy.<module>") and
never configures handlers itself:
DEBUG: routine progress and decisions (a skipped step, a masked region, per-file progress).
WARNING: something about the data the caller should know (missing sound velocity, an empty aux stream, a target that could not be matched).
Library code never logs at INFO and never prints.
In a script:
from sidescanpy.log import configure_logging, log_timing
configure_logging("INFO") # or "DEBUG" to see library detail
with log_timing("correct survey"):
...
configure_logging is idempotent and keeps noisy third-party loggers at
WARNING. The CLI commands set it up from -v, -q and --log-file.