[MASTER]
extension-pkg-allow-list=py_chunks._rust
# _rust ships a .pyi stub (for mypy/pyright). astroid's stub inference
# mis-models the pyo3 returns (dict/tuple annotations infer as
# unsubscriptable), flooding the wrappers with false E1136/E0633 —
# so pylint keeps treating _rust as opaque, exactly as before the stub.
ignored-modules=py_chunks._rust

[MESSAGES CONTROL]
disable=
    duplicate-code,
    too-few-public-methods,
    missing-function-docstring

[DESIGN]
# These limits are set to what this library's shape actually requires, rather
# than left at the defaults and then silenced. Every entry point takes the same
# chunking parameters — mode, window_size, overlap, sentences_per_chunk,
# paragraphs_per_page, plus the source — and that signature is the documented
# public API (see chunkengine.dev/docs/api-reference). Splitting it into a
# config object to satisfy a linter would change the API for no user benefit.
max-args=11
max-positional-arguments=11
# Format dispatch is inherently a wide branch: one arm per extension family,
# each with an early return. Collapsing them would make the routing harder to
# read, not easier.
max-branches=18
max-returns=17
max-locals=20
# _sources.py carries the 13 source-agnostic entry points with full docstrings
# and explicit kwarg forwarding; it is the one deliberately long module.
max-module-lines=1000

[FORMAT]
max-line-length=100

