You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
assignee='https://github.com/serhiy-storchaka'closed_at=<Date2014-03-12.20:59:53.685>created_at=<Date2014-01-23.09:47:31.664>labels= ['type-bug', 'library']
title='BytesWarnings triggerred by test suite'updated_at=<Date2014-03-12.20:59:53.684>user='https://bugs.python.org/Arfrever'
You rather meant [2:-1] instead of [1:-1], but if initial "b'" and final "'" are not needed in result string, then maybe just call .decode() on an instance of bytes.
I think that %s is better for 'dashes' variable (which is always str) in Lib/distutils/command/register.py:
self.announce('%s%r%s' % (dashes, data, dashes))
Thanks for applying the patch. distutils tests don’t cover 100% of the codebase; did you test manually that the behavior of the changed code was still correct?
As I see, affected line is used to output debugging message (disabled by default). It produces different result in 2.7 and 3.x ("----------xxx----------" vs "----------b'xxx'----------") due to the difference between 2.x str and 3.x bytes.
I don’t understand one thing: you said the output wasn’t changed, then show an example of changed output: “"----------xxx----------" vs "----------b'xxx'----------"”.
The “data” that is displayed is supposed to be text; showing “b'” and “'” is a regression for the 3.x line.
Output is different between Python 2 and 3, but not different between different versions in Python 3.
Output in Python 3 is e.g. "----------b'xxx'----------" both before and after commit 791674a74e47.
I suggest to create a separate issue for discussion about this message in distutils.
Activity
Arfrever commentedon Jan 23, 2014
[194/388] test_base64
/tmp/cpython/Lib/base64.py:365: BytesWarning: str() on a bytes instance
"by {} and {}".format(A85START, _A85END))
...
[204/388] test_hash
/tmp/cpython/Lib/test/test_hash.py:175: BytesWarning: str() on a bytes instance
return 'print(hash(eval(%s.decode("utf-8"))))' % repr.encode("utf-8")
...
[234/388] test_configparser
/tmp/cpython/Lib/configparser.py:289: BytesWarning: str() on a bytes instance
Error.__init__(self, 'Source contains parsing errors: %s' % source)
/tmp/cpython/Lib/configparser.py:326: BytesWarning: str() on a bytes instance
(filename, lineno, line))
...
[332/388/1] test_distutils
/tmp/cpython/Lib/distutils/command/register.py:303: BytesWarning: str() on a bytes instance
self.announce('%s%s%s' % (dashes, data, dashes))
Arfrever commentedon Jan 23, 2014
I think that repr could be used:
str(bytes_instance) -> repr(bytes_instance)
"%s" % bytes_instance -> "%r" % bytes_instance
Any opinions?
ambv commentedon Jan 23, 2014
repr(bytestr)[1:-1];-)Arfrever commentedon Jan 23, 2014
You rather meant [2:-1] instead of [1:-1], but if initial "b'" and final "'" are not needed in result string, then maybe just call .decode() on an instance of bytes.
serhiy-storchaka commentedon Jan 23, 2014
Agree.
"{}".format(bytestr) -> "{!r}".format(bytestr)
berkerpeksag commentedon Jan 23, 2014
Here's a patch to silence BytesWarnings.
Arfrever commentedon Jan 23, 2014
I think that %s is better for 'dashes' variable (which is always str) in Lib/distutils/command/register.py:
self.announce('%s%r%s' % (dashes, data, dashes))
serhiy-storchaka commentedon Jan 24, 2014
And
can be simplified to
2 remaining items
berkerpeksag commentedon Jan 26, 2014
Ah, my bad. Thanks Arfrever.
serhiy-storchaka commentedon Feb 6, 2014
LGTM.
python-dev commentedon Feb 6, 2014
New changeset 791674a74e47 by Serhiy Storchaka in branch '3.3':
Issue bpo-20363. Fixed BytesWarning triggerred by test suite.
http://hg.python.org/cpython/rev/791674a74e47
New changeset a4431dce107a by Serhiy Storchaka in branch 'default':
Issue bpo-20363. Fixed BytesWarning triggerred by test suite.
http://hg.python.org/cpython/rev/a4431dce107a
serhiy-storchaka commentedon Feb 6, 2014
Thank you Arfrever for your report. Thank you Berker for your patch.
merwok commentedon Feb 13, 2014
Thanks for applying the patch. distutils tests don’t cover 100% of the codebase; did you test manually that the behavior of the changed code was still correct?
serhiy-storchaka commentedon Feb 13, 2014
At least it wasn't changed.
As I see, affected line is used to output debugging message (disabled by default). It produces different result in 2.7 and 3.x ("----------xxx----------" vs "----------b'xxx'----------") due to the difference between 2.x str and 3.x bytes.
merwok commentedon Mar 12, 2014
I don’t understand one thing: you said the output wasn’t changed, then show an example of changed output: “"----------xxx----------" vs "----------b'xxx'----------"”.
The “data” that is displayed is supposed to be text; showing “b'” and “'” is a regression for the 3.x line.
Arfrever commentedon Mar 12, 2014
Output is different between Python 2 and 3, but not different between different versions in Python 3.
Output in Python 3 is e.g. "----------b'xxx'----------" both before and after commit 791674a74e47.
I suggest to create a separate issue for discussion about this message in distutils.
merwok commentedon Mar 12, 2014
Thanks for correcting me. I created bpo-20900.