Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Type hint stubs #491

Open
paravoid opened this issue Dec 3, 2019 · 1 comment
Open

Type hint stubs #491

paravoid opened this issue Dec 3, 2019 · 1 comment
Labels

Comments

@paravoid
Copy link

@paravoid paravoid commented Dec 3, 2019

It'd be awesome if client_python was type hinted, as that would allow downstream consumers to typecheck their API calls (one has to explicitly # type: ignore the import right now).

My understanding is that the project is actively trying to support (very) old versions of Python. In this case, there are two options: a) type hints in comments b) type stubs (.pyi). The latter is preferrable; this can be shipped by either typeshed, or, ideally, in the software itself. For more about the pros and cons of each solution, I've found Bernat Gabor's blog post to be informative.

Adding the hints across the entire code base is easy but still, not a trivial amount of work. Tools like MonkeyType can help bootstrap that process. Given the good code test coverage, I tried running the test suite with MonkeyType (monkeytype run -m pytest) and it generated the majority of the hints. There were, however, some corner cases that it wasn't able to figure out or otherwise failed to generate, and I'm not familiar enough with the codebase to help with that.

Thanks & thanks for all of the work you've been putting on this module!

@brian-brazil
Copy link
Member

@brian-brazil brian-brazil commented Dec 4, 2019

This seems reasonable to add to the public bits of the API via comments.

My understanding is that the project is actively trying to support (very) old versions of Python.

More that we're not going to drop them until they cause too much hassle, so far it has only been a little annoying.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants
You can’t perform that action at this time.