feat(commands): Add support for Range[LargeInt, ...]#1201
Open
Enegg wants to merge 20 commits into
Open
Conversation
Range[LargeInt, ...]Range[LargeInt, ...]
8 tasks
Contributor
Author
|
Tangentially related: we could add slice support for defining ranges ( |
Enegg
commented
Nov 14, 2024
Member
|
Hi, would you please resolve conflicts? |
5fff87a to
dddeb46
Compare
5410c06 to
57f7855
Compare
shiftinv
reviewed
Nov 19, 2025
| return decorator | ||
|
|
||
|
|
||
| NumT = TypeVar("NumT", bound=Union[int, float]) |
Member
There was a problem hiding this comment.
Thoughts on adding a default= to this typevar? Otherwise pyright infers annotation.min_value as Unknown | None below.
Contributor
Author
There was a problem hiding this comment.
I took the liberty to instead move String/Range outside of TYPE_CHECKING, which allows pyright to actually typecheck their bodies, which in turn fixes the Unknown | None you mentioned.
Seems like this broke Sphinx though, would like some help resolving that :^)
Co-authored-by: vi <8530778+shiftinv@users.noreply.github.com> Signed-off-by: Eneg <42005170+Enegg@users.noreply.github.com>
…nto Eneg/large-range
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.

Summary
Closes #787
This PR adds support for defining a range of accepted values for
commands.LargeInt.If both bounds are specified, we restrict the length of the string input according to the number of digits (and sign) of the bounds.
We also raise an error during conversion, if the provided value would exceed the defined range (for example
Range[LargeInt, 100, 200]would have actual possible input of 100-999).I've also implemented a check in case the developer attempts to define a range exceeding ±2**53 with the normal
inttype, directing them toLargeInt.Checklist
pdm lintpdm pyright