/**
 * @file defaults/coverage.libjsonnet
 * @namespace coverage
 * @brief Default configuration for coverage reporting and measurement.
 */
{
  local shared_omit = [
    'conftest.py',
    'tests.py',
    'tests/*/test_*.py',
    'tests/test_*.py',
  ],
  /** @brief Coverage report configuration. */
  report: {
    /**
     * @brief List of additional patterns to exclude from coverage reporting.
     * @var string[]
     */
    exclude_also: ['if TYPE_CHECKING:'],
    /**
     * @brief List of file patterns to omit from coverage reporting.
     * @var string[]
     */
    omit: shared_omit,
    /** @brief If true, shows lines that are missing coverage. */
    show_missing: true,
  },
  /** @brief Coverage run configuration. */
  run: {
    /** @brief If true, measures branch coverage. */
    branch: true,
    /**
     * @brief List of file patterns to omit from coverage measurement.
     * @var string[]
     */
    omit: shared_omit,
  },
}
