Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
[python-package] add more hints in sklearn.py #5460
[python-package] add more hints in sklearn.py #5460
Changes from 2 commits
a637354
79ccfe3
b7c8999
347264d
d9b2ca6
248c4d6
81c234f
eee7e75
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this should be
Sequence[int]
, given that for examplerange(5)
is an iterable but is not a valid type for this.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤩 Excellent point. I was just following the docstring and didn't consider this. Thanks very much for noting it!!!
I tried the following from the root of the repo, just to see what would happen:
sample code (click me)
And you're right...passing a range for
eval_at
causes a failure when serializing the parameters to string to pass them through the C API functions.Given that, I think the hint here should be even stricter than
typing.Sequence
. Since this keyword argument is passed directly through toparams
and there's no other code in LightGBM manipulating its value, I think it can only accept values that are valid forlightgbm.basic.param_dict_to_str()
.For
eval_at
, I think that means only a list of ints or tuple of ints is valid.param_dict_to_str()
supportslist
,tuple
, andset
, butset
isn't appropriate foreval_at
because sets aren't iterable (e.g. don't have any ordering).LightGBM/python-package/lightgbm/basic.py
Line 323 in 3d4e08e
I just pushed 81c234f which:
eval_at
toUnion[List[int], Tuple[int]]
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jmoralez I won't merge this until you have a chance to respond, since what I did here is slightly different than what you suggested.