chameleon 4.4.49
Fixed
-
The Python inheritance lint false-positived on every subscripted-generic base.
Derivation strips the generic type-param (_strip_type_params, v4.4.36) so a
typed cohort's dominant base isBaseRepository, but_py_positional_bases
compared the rawBaseRepository[Shipment]and never matched, firing
inheritance-convention-violationon every generic repository on every edit --
the enforcement-side twin of the derivation asymmetry v4.4.36/37 fixed. The
lint now strips the subscript with the SAME_strip_type_params, and the base
split is bracket-depth-aware so a multi-arg generic (Generic[T, U]) is not
fractured on its internal comma. A genuinely wrong base still flags. Verified
end-to-end:class VehicleRepository(BaseRepository[Vehicle])in the FastAPI
fixture no longer fires the rule.The bracket-aware comma splitter was de-duplicated in the process: hook_helper
carried an identical_split_top_level; both now share lint_engine's copy so
they cannot drift.