Description
Re-export IneffectiveLeaseWarning (defined in wool.runtime.worker.pool) and IneffectiveQuorumTimeoutWarning (defined in wool.runtime.worker.proxy) from wool/__init__.py, and add both names to wool.__all__. Place them on the public package surface beside SerializationWarning, under the WoolWarning umbrella.
Motivation
Both warnings are user-tunable through the standard warnings filter — warnings.filterwarnings("error", category=...) or PYTHONWARNINGS=error::wool.IneffectiveLeaseWarning — but neither has a stable public import path. A caller who wants to silence, promote, or filter one must reach into a private module: from wool.runtime.worker.pool import IneffectiveLeaseWarning. That couples application code to Wool's internal layout. SerializationWarning already sits on the package surface; these two belong there too.
Expected Outcome
from wool import IneffectiveLeaseWarning, IneffectiveQuorumTimeoutWarning resolves.
- Both names appear in
wool.__all__, beside SerializationWarning, and the public-API allowlist test covers them.
- The emission sites in
pool.py and proxy.py are untouched — no behavior change.
Description
Re-export
IneffectiveLeaseWarning(defined inwool.runtime.worker.pool) andIneffectiveQuorumTimeoutWarning(defined inwool.runtime.worker.proxy) fromwool/__init__.py, and add both names towool.__all__. Place them on the public package surface besideSerializationWarning, under theWoolWarningumbrella.Motivation
Both warnings are user-tunable through the standard warnings filter —
warnings.filterwarnings("error", category=...)orPYTHONWARNINGS=error::wool.IneffectiveLeaseWarning— but neither has a stable public import path. A caller who wants to silence, promote, or filter one must reach into a private module:from wool.runtime.worker.pool import IneffectiveLeaseWarning. That couples application code to Wool's internal layout.SerializationWarningalready sits on the package surface; these two belong there too.Expected Outcome
from wool import IneffectiveLeaseWarning, IneffectiveQuorumTimeoutWarningresolves.wool.__all__, besideSerializationWarning, and the public-API allowlist test covers them.pool.pyandproxy.pyare untouched — no behavior change.