[run]
branch = true
omit =
    */optree/version.py
plugins =
    covdefaults
    confcoverage
source = ../optree

[report]
exclude_also =
    \A(?s:.*# pragma: no cover file\b.*)\Z
    # pragma: no cover begin\b(?s:.)*?# pragma: no cover end\b
    ^\s*raise NotImplementedError\b
    ^\s*class .*\bProtocol(\[.*\])?\):
    ^\s*@(abc\.)?abstractmethod
    ^\s*@(typing\.)?overload
    ^\s*@(warnings\.)?deprecated\(.*
    ^\s*if __name__ == ('__main__'|"__main__"):
    ^\s*if (typing\.|_)?TYPE_CHECKING:
fail_under = 90.0
precision = 2
show_missing = true
skip_covered = true

[confcoverage]
optional_modules =
    jax
    numpy
    torch
