Because return types of KeysView.__or__ and other operators are typiiing.Set, returning sc.Set violates Liskov substitution principle because a base class of sc.Set is MutableSet (Set > MutableSet > AbstractSet).
I'm not sure if I should change the base class of sc.Set to typing.Set.
With this change, we'll be able to get rid of the # type: ignore[override]'s in sc.KeysView.
Because return types of
KeysView.__or__and other operators aretypiiing.Set, returningsc.Setviolates Liskov substitution principle because a base class ofsc.SetisMutableSet(Set > MutableSet > AbstractSet).I'm not sure if I should change the base class of
sc.Settotyping.Set.With this change, we'll be able to get rid of the
# type: ignore[override]'s insc.KeysView.