Skip to content

Conversation

@serhiy-storchaka
Copy link
Member

@serhiy-storchaka serhiy-storchaka commented Mar 23, 2017

errors='surrogateescape' should be used for successful decoding.

encoding='latin1' should be used for successful decoding.

https://bugs.python.org/issue22005

…Python 2.

errors='surrogateescape' should be used for successful decoding.
@mention-bot
Copy link

@serhiy-storchaka, thanks for your PR! By analyzing the history of the files in this pull request, we identified @abalkin, @tim-one and @birkenfeld to be potential reviewers.

Lib/datetime.py Outdated
1 <= year[2] <= 12:
if (month is None and
isinstance(year, (bytes, str)) and len(year) == 4 and
1 <= ord(year[2:3])&0xFF <= 12):
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 understand how the last condition works. Is it supposed to allow str year with year[2] outside of 8-bit range?

Copy link
Member Author

Choose a reason for hiding this comment

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

If the third byte is in the range 0x00-0x7f, it is decoded to the character in the range U+0000-U+007f. If it is in the range 0x80-0xff, it is decoded to the character in the range U+dc80-U+dcff.

Hmm, but in the latter case ord(year[2:3])&0xFF >= 0x80, and that condition is false. &0xFF is not needed in this case. But '&0x7F' in other two cases are needed.

@serhiy-storchaka
Copy link
Member Author

Tests on Travis CI are failed for unrelated cause.

@serhiy-storchaka
Copy link
Member Author

The Travis CI build is failed due to some glitches. For a copy of this PR #11017 all tests are passed.

@serhiy-storchaka serhiy-storchaka deleted the datetime-compat-unpickle branch December 7, 2018 11:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

awaiting review type-bug An unexpected behavior, bug, or error

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants