Cleanups for when we drop Python 2 compatibility
— at Version 27
This is a tracking ticket of things that we can remove when we drop Python 2 compatibility in Django 2.0. Please edit the description of the ticket as you come across new items.
django.core.mail.message.make_msgid()
#23905
django.dispatch.weakref_backports
django.http.cookie
workarounds
django.utils.2to3_fixes
django.utils.decorators.ContextDecorator
django.utils.encoding
@python_2_unicode_compatible
- force/smart _unicode
- either force/smart _text or force/smart _str
django.utils.html_parser.use_workaround
django.utils.http
functions like urlquote_plus
-- I think the versions of these functions on Python 3 don't have the unicode characters bug we are working around.
django.utils.lru_cache
django.utils.six
from __future__ import unicode_literals
str()
stuff for environment variables, e.g. 0bfb53866199f366ed140d49938fd185e5898156
- Inheriting from
object
in django.core.servers.basehttp
(and perhaps other places) ala 4ee06ec3fc8e94d164afbd2f9c880c60c658a9ac
git grep 'long int'
(mostly docs)
django.utils._os [npath,upath]
- In tests:
contextlib.closing(self.urlopen
(contextlib.closing
no longer needed)
- Support for pysqlite (doesn't support Python 3)
- Replace
super(ClassName, self)
with super()
- Remove
# -*- coding: utf-8 -*-
source file encoding (that's the default on Python 3)
- Evaluate replacement of custom
__del__
methods by weakref.finalize
- Remove
__ne__
from objects already defining a __eq__
- Remove note about PYTHONHASHSEED (see #26243)
- Remove Field.creation_counter (replace by metaclass
__prepare__
returning OrderedDict()
, https://docs.python.org/3/reference/datamodel.html#preparing-the-class-namespace)
django.test.utils.reset_warning_registry()
- Replace
errno
checks by IOError
subclasses defined by PEP 3151
django.utils.glob
django.utils.cookies.SimpleCookie
django.test.mock
- Replace
tempfile.mkdtemp
+ remove with tempfile.TemporaryDirectory
context manager
- Replace
io.open()
by a plain open()
- Evaluate need for
assertRegex
, assertRaisesRegex
in tests. Some usage is merely to account for differences in messages between Python 2 and 3.
re.U
, re.UNICODE
(default behavior of Python 3)
Change History
(27)
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Cc: |
cmawebsite@… added
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Various
nonlocal
workarounds (example).