Open kylebarron opened 2 years ago
Can the typing complaint not be ignored? I love how stable Affine is at the moment and would love to focus on other things and not make any new releases of it.
A couple notes:
About the typing complaint, there are a couple ways to solve it:
# type: ignore[override]
to override the type errorAlternatively, to satisfy the condition, we just can't have the narrowest typing. So instead of
def __mul__(self, other: "Affine") -> "Affine":
instead we'd have
def __mul__(self, other: namedtuple) -> "Affine":
👋
I saw https://github.com/mapbox/mercantile/issues/140 and since @sgillies was receptive to the idea of adding type hints, I thought I'd also start a discussion here about adding type hints 🙂 .
Affine is a relatively small and self-contained library, so it could be a good library in the ecosystem to start with. I'd be happy to put up a PR if there's interest.
One possible hiccup that I found in the creation of external type stubs for affine is that mypy complained about violating the Liskov substitution principle. Specifically I wasn't able to type
__mul__
to take anAffine
object as input and output, because that's an incompatible override of the NamedTuple's__mul__
typing.