Skip to content
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

move the check bs if not None #26887

Closed
wants to merge 1 commit into from
Closed

Conversation

olegasics
Copy link

moved the check parameter to the top of the isnstance check, because if bs = None then an exception is thrown

moved the check parameter to the top of the isnstance check, because if bs = None then an exception is thrown
@the-knights-who-say-ni
Copy link

Hello, and thanks for your contribution!

I'm a bot set up to make sure that the project can legally accept this contribution by verifying everyone involved has signed the PSF contributor agreement (CLA).

Recognized GitHub username

We couldn't find a bugs.python.org (b.p.o) account corresponding to the following GitHub usernames:

@olegasics

This might be simply due to a missing "GitHub Name" entry in one's b.p.o account settings. This is necessary for legal reasons before we can look at this contribution. Please follow the steps outlined in the CPython devguide to rectify this issue.

You can check yourself to see if the CLA has been received.

Thanks again for the contribution, we look forward to reviewing it!


if not isinstance(bs, (bytes, bytearray)):
raise TypeError("quote_from_bytes() expected bytes")

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your contribution.

This changes behavior, and if it didn't break any of the unit tests it means this case is not covered by tests and you need to fix that in this PR.

You also need to create an issue on bugs.python.org to describe this change and confirm that this is a bug and not a feature.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, it's not redundant:

isinstance(None, (bytes, bytearray))
False

so before the change None gave TypeError and after the change it returns ''.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think thats what the logic should be, None == not bs hence '', Type Error is meant for the instance check, no? I will leave to you.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't follow. The change is this:

def old():
    bs = None
    if not isinstance(bs, (bytes, bytearray)):
        raise TypeError("quote_from_bytes() expected bytes")
    if not bs:
        return ''

def new():
    bs = None
    if not bs:
        return ''
    if not isinstance(bs, (bytes, bytearray)):
        raise TypeError("quote_from_bytes() expected bytes")

print('--------- new:')
print(new() == '')
print('--------- old:')
print(old() == '')

output:

--------- new:
True
--------- old:
Traceback (most recent call last):
  File "C:\Users\User\src\cpython-current\tmp.py", line 20, in <module>
    print(old() == '')
  File "C:\Users\User\src\cpython-current\tmp.py", line 6, in old
    raise TypeError("quote_from_bytes() expected bytes")
TypeError: quote_from_bytes() expected bytes

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm, I would see how returning TypeError for None would have been a feature and intentional hence this PR maybe actually wrong in that case.

Copy link
Member

@iritkatriel iritkatriel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • bug tracker ticket
  • unit test

@bedevere-bot
Copy link

A Python core developer has requested some changes be made to your pull request before we can consider merging it. If you could please address their requests along with any other requests in other reviews from core developers that would be appreciated.

Once you have made the requested changes, please leave a comment on this pull request containing the phrase I have made the requested changes; please review again. I will then notify any core developers who have left a review that you're ready for them to take another look at this pull request.

@iritkatriel
Copy link
Member

Closed as per discussion on the pbo issue.

@iritkatriel iritkatriel closed this Jul 2, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants