﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
27753	Cleanups when no supported version of Django supports Python 2 anymore	Aymeric Augustin		"Compatibility with Python 2 is currently being removed in master as part of the Django 2.0 development cycle: see #23919.

However third-party apps may want to remain compatible with all supported version of Django and the corresponding versions of Python, which includes Python 2.

To allow this, compatibility functions or modules aren't removed. They're still importable. They're usually just aliases or no-ops. Here's a list of things to deprecate and remove eventually:

- django.utils.six
- django.utils.lru_cache
- django.utils._os.abspathu, upath, npath
- django.utils.decorators.available_attrs
- django.utils.encoding.python_2_unicode_compatible
- django.utils.encoding.smart/force_text
- django.utils.http.urlquote/urlquote_plus/urlunquote/urlunquote_plus ([https://github.com/django/django/pull/7906/commits/5861ce799ddb3f5912f9e16503d4239fa9d80e66 unmerged commit])
- django.utils.safestring.SafeBytes
- One of either [https://github.com/django/django/blob/9718fa2e8abe430c3526a9278dd976443d4ae3c6/django/utils/safestring.py#L61 django.utils.safestring.SafeString] or django.utils.safestring.SafeText
- django.test.utils.str_prefix()
- django.utils.encoding.DjangoUnicodeDecodeError
- `django.utils.functional.curry()` (in favor of `functools.partial()`/`partialmethod()`; see 5b1c389603a353625ae1603ba345147356336afb)
- django.test.utils.patch_logger()"	Cleanup/optimization	new	Utilities	dev	Normal				Someday/Maybe	0	0	0	0	0	0
