Fix bug __repr__ting an XmlModel on Python3 (doesn't define unicode)#6
Open
jgomo3 wants to merge 1 commit intotheatlantic:mainfrom
jgomo3:master
Open
Fix bug __repr__ting an XmlModel on Python3 (doesn't define unicode)#6jgomo3 wants to merge 1 commit intotheatlantic:mainfrom jgomo3:master
jgomo3 wants to merge 1 commit intotheatlantic:mainfrom
jgomo3:master
Conversation
The `__repr__` implementation on class `XmlModel` uses the function `unicode` which is only defined in Python 2. So in Python 3, this raises an exception. I changed the usage of `unicode` with `smart_str` from `django.utils.encoding` as it promises to use `smart_bytes` if running in Python 2 and `smart_text` if Python 3. What happens is that Python 3 expects `__repr__` to return a `str` not a bytestring. That's why changed the import logic and leverage on Django logic behind the `smart_*` methods handling Python 2 and 3.
|
@fdintino I believe this PR is now Overcome by Events since Python 2 is no longer supported and can be closed. |
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.
Note: This is a proposal. We could discuss this and if you will, you could help me to test better this change.
The
__repr__implementation on classXmlModeluses the functionunicodewhich is only defined in Python 2. So in Python 3, thisraises an exception.
I changed the usage of
unicodewithsmart_strfromdjango.utils.encodingas it promises to usesmart_bytesifrunning in Python 2 and
smart_textif Python 3.What happens is that Python 3 expects
__repr__to return astrnot a bytestring. That's why changed the import logic andleverage on Django logic behind the
smart_*methods handlingPython 2 and 3.