#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 Simon Charette:

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
> * 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
 * `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 --
 [https://github.com/django/django/pull/7881 PR 7881]
 * `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]

--

--
Ticket URL: <https://code.djangoproject.com/ticket/23919#comment:47>
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.bdf1492c249bdd44c1766ab19eab1321%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to