- Notifications
You must be signed in to change notification settings - Fork 435
Add issubset, issuperset and size to Range type #563
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
Changes from 1 commit
cc46f14 7096db1 534dce4 44960d3 9cb36ac ae69caa 797d8fb 07480c4 File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| | @@ -85,6 +85,52 @@ def upper_inf(self): | |
| def isempty(self): | ||
| return self._empty | ||
| | ||
| def issubset(self, other): | ||
| if self._empty: | ||
| return True | ||
| if other._empty: | ||
| return False | ||
| | ||
| if other._lower is None: | ||
| lowerOk = True | ||
| else: | ||
| if self._lower is None: | ||
| return False | ||
| if other._lower_inc or not self._lower_inc: | ||
| lowerOk = self._lower >= other._lower | ||
| else: | ||
| lowerOk = self._lower > other._lower | ||
| | ||
| if not lowerOk: | ||
| return False | ||
| | ||
| if other._upper is None: | ||
| upperOk = True | ||
| else: | ||
| if self._upper is None: | ||
| return False | ||
| if other._upper_inc or not self._upper_inc: | ||
| upperOk = self._upper <= other._upper | ||
| else: | ||
| upperOk = self._upper < other._upper | ||
| | ||
| return lowerOk and upperOk | ||
| ||
| | ||
| def issuperset(self, other): | ||
| return other.issubset(self) | ||
| | ||
| def size(self, step=None): | ||
| ||
| if self._upper is None or self._lower is None: | ||
| return None | ||
| ||
| if step is None or self._upper_inc != self._lower_inc: | ||
| step = 0 | ||
| else: | ||
| step = abs(step) | ||
| if not self._upper_inc: | ||
| step *= -1 | ||
| | ||
| return step + self._upper - self._lower | ||
| | ||
| def __bool__(self): | ||
| return not self._empty | ||
| | ||
| | ||
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.
It would read better if you set
lowerOk = Falsehere and use anelif. Also, please uselower_okfor the variable name for style consistency.