fix: raise clear TypeError for non-int in long2ip()#33
Open
koteshyelamati wants to merge 1 commit into
Open
Conversation
In Python 3, the comparison `MAX_IP < None` raises: TypeError: '<' not supported between instances of 'int' and 'NoneType' This differs from the doctest which expects the Python 2 error message: TypeError: unsupported operand type(s) for >>: 'NoneType' and 'int' Fix: add an explicit isinstance check before the comparison so that non-integer inputs raise a clear, consistent TypeError.
Owner
|
I’m not sure I see the point of replacing a type error with a type error that has a different description after extra steps. What is your use case for this? |
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.
Bug Fix
In Python 3,
long2ip(None)raises:This comes from the comparison
MAX_IP < lfailing whenlisNone.The doctest (which was written for Python 2) expects:
In Python 2,
None < intwas valid (always False), so execution reached the>>bit-shift operator. In Python 3, the comparison itself raisesTypeError.Fix
Added an explicit
isinstancecheck before the comparison so thatNoneand other non-integer inputs raise a consistent, clearTypeError("expected int between 0 and 4294967295 inclusive")— the same message already raised for out-of-range integers.