#23919: Cleanups for when we drop Python 2 compatibility
--------------------------------------+------------------------------------
Reporter: Tim Graham | Owner: nobody
Type: Cleanup/optimization | Status: new
Component: Core (Other) | Version:
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
--------------------------------------+------------------------------------
Description changed by Tim Graham:
Old description:
> 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.
> * ~~Stop using `django.utils.lru_cache`~~
> * Figure the deprecation plan for `django.utils.lru_cache`
> * `django.utils.six` - Remaining:
> [https://github.com/django/django/pull/7878 PR 7878]
> * ~~`from __future__ import unicode_literals`~~
> * `str()` stuff for environment variables, e.g.
> 0bfb53866199f366ed140d49938fd185e5898156
> * ~~`str()` stuff for `type(name)` and `__name__`~~
> * ~~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
> [https://docs.python.org/3/library/weakref.html#weakref.finalize
> 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
> [https://www.python.org/dev/peps/pep-3151/ 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) -
> [https://github.com/django/django/pull/7879 PR 7879]
New description:
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~~ (remains for Python 3.4)
* ~~`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.
* ~~Stop using `django.utils.lru_cache`~~
* ~~Figure the deprecation plan for `django.utils.lru_cache`~~ (staying
for now)
* `django.utils.six` - Remaining:
[https://github.com/django/django/pull/7878 PR 7878]
* ~~`from __future__ import unicode_literals`~~
* `str()` stuff for environment variables, e.g.
0bfb53866199f366ed140d49938fd185e5898156
* ~~`str()` stuff for `type(name)` and `__name__`~~
* ~~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)
[https://github.com/django/django/pull/7890 PR]
* 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
[https://docs.python.org/3/library/weakref.html#weakref.finalize
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
[https://www.python.org/dev/peps/pep-3151/ PEP 3151]
* ~~`django.utils.glob`~~
* ~~`django.utils.cookies.SimpleCookie`~~ (remains for Python 3.4
compatibility)
* ~~`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) -
[https://github.com/django/django/pull/7879 PR 7879]
--
--
Ticket URL: <https://code.djangoproject.com/ticket/23919#comment:63>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/067.0d797e51dd1f8c6b9435e5339b31a735%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.