python-trio / trio-typing

Type hints for Trio and related projects
Other
27 stars 14 forks source link

make mypy dependency optional #34

Closed belm0 closed 3 years ago

belm0 commented 3 years ago

My understanding is that the mypy dependency is only needed for the plugin. So if a dependee only needs the trio_typing module, currently it's also pulling in an unneeded mypy runtime dependency, and this propagates transitively to any app using such libraries, regardless of whether the app uses mypy in its toolchain.

Someone else has pointed out on tricycle that the dependency is heavy. https://github.com/oremanj/tricycle/issues/11

It seems that mypy is already optionally excluded for PyPy:

https://github.com/python-trio/trio-typing/blob/f32f17b0f242daf2d42407f383ca581d64b6c299/setup.py#L24-L26

Proposal: put mypy dependency under an extras_require option like "plugins" or "mypy_plugin"