-
Notifications
You must be signed in to change notification settings - Fork 132
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
Adding type hinting in the code. #118
Comments
https://www.python.org/dev/peps/pep-0484/#stub-files For compatibility with python2 and 3 |
Agreed, this would be a great addition. I unfortunately don't have time to add it myself, but I would welcome/review a PR! |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Is anyone working on this? |
@weditor not that I know of, but I'd still welcome a PR for it. Now that the project only supports python 3.6.1 and up, it's possible to do this with native type hints in code instead of a stub file. Are you interested in doing a first pass perhaps? |
yes, I'm interested in it. but...should I add type hints to original code? link: https://mypy.readthedocs.io/en/stable/stubs.html#creating-a-stub In this case, we still don't have to maintain an extra pyfunctional-stubs library 。 it seems works well with mypy and IDEs 。 |
@weditor sounds great! I would prefer to have type hints to the source code itself, so inside the python files. When this issue was first created, pyfunctional still supported pre 3.5 python, which made supporting type hints difficult (had to be through stub files for compatibility). Now that we support only 3.6 and higher, the type hint features are available in all supported python versions. EG, https://github.com/EntilZha/PyFunctional/blob/master/functional/pipeline.py#L386 would be |
hello, i submitted a PR. |
It's fine if coverage goes down where reasonable, all the other checks should pass though. The other thing that would be great is to have a way to verify that the types seem correct. For example, it might be worth adding some mypy or other type checker on the unit test directory to make sure the unit tests type check correctly |
Any news on type hints? It is a super-useful feature for people like me who want to check generic collections with static types. |
Commented on the associated PR #162. TLDR: I'd merge that PR if either (1) it added mypy static type checking as a lint step or (2) another PR added only this + I rebase the new PR ontop of it to check the linting type check. |
sorry for late reply. @overload
def head_option(self: "Sequence[Iterable[_T1]]") -> Optional["Sequence[_T1]"]:
...
@overload
def head_option(self: "Sequence[_T2]") -> Optional[_T2]:
... head_option will return the first element in sequence. But this will cause mypy to report an error: unfortunately, there are many I cannot find any way to fix this expect here's some discussion about it: python/mypy#1941, python/typing#253 |
Uhm, any updates so far? |
I haven't/won't have time to work on it personally, but am generally supportive of PRs. The fastest way to get something merged is (1) comment with general plan, in case I'd want it done differently (2) add CI tests for new things and (3) add the new changes. Since the typing changes add quite a lot of code, I'd really want to have this checked by CI. So as my prior comment, I think a reasonable step of doing this would be to first add a PR to add CI type checking, then a second PR that starts adding types that are needed. For the last step, I'd strongly recommend doing this incrementally, eg, just add basic types first rather than everything at once (e.g., |
Hi there! I see that progress was made on type hinting as several pull requests have been merged. Any chance we can have a new release with the new features? The last release is 1.4.3 over three years ago. Thanks :-) |
Any updates on that? |
https://docs.python.org/3/library/typing.html
This way python autocomplete engines work better when the function types are known. It would be a considerable improvement in this library since code can be type checked before running it, not to mention improved auto-complete correctness.
The text was updated successfully, but these errors were encountered: