gh-145300: Add __length_hint__ for itertools.islice#145333
gh-145300: Add __length_hint__ for itertools.islice#145333KowalskiThomas wants to merge 4 commits intopython:mainfrom
__length_hint__ for itertools.islice#145333Conversation
|
Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool. If this change has little impact on Python users, wait for a maintainer to apply the |
59ebd06 to
5f94bd0
Compare
5f94bd0 to
82c68c8
Compare
__length_hint__ for itertools.islice
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 82c68c8fe5
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
So it seems the Codex bot which we use at work is configured to review my PRs on all repositories, including the ones that do not belong to my organisation... I've disabled it for the time being as I don't know what the policy around it is in CPython (sorry about that). |
Summary
This PR addresses an issue I spotted on #145300, which mentioned that
itertools.islicedoes not support__length_hint__currently.General philosophy is
stopis not set, we don't know the number of elements we will iterate over, so we use the underlying iterator's__length_hint__then do our calculations over thatTesting wise, I added a few unit tests but it's unclear to me if I should be adding more (there doesn't seem to be a ton of instances/examples for the other
itertoolstests), but feel free to request more. Just to gain confidence in the change myself, I also tried the following locally (it works):Note this is my first PR here; I read the contributor guidelines but I apologise in advance if anything I did not follow them (please do tell me!)
.extend()behavior in bytearray #145300