Fixed #28708 -- Added constants to detect the Python version.

This commit is contained in:
Tim Graham 2017-10-12 11:08:05 -04:00
parent abb636c1af
commit 941b0a5b33
4 changed files with 13 additions and 6 deletions

View File

@ -2,8 +2,18 @@ import datetime
import functools import functools
import os import os
import subprocess import subprocess
import sys
from distutils.version import LooseVersion from distutils.version import LooseVersion
# Private, stable API for detecting the Python version. PYXY means "Python X.Y
# or later". So that third-party apps can use these values, each constant
# should remain as long as the oldest supported Django version supports that
# Python version.
PY36 = sys.version_info >= (3, 6)
PY37 = sys.version_info >= (3, 7)
PY38 = sys.version_info >= (3, 8)
PY39 = sys.version_info >= (3, 9)
def get_version(version=None): def get_version(version=None):
"""Return a PEP 440-compliant version number from VERSION.""" """Return a PEP 440-compliant version number from VERSION."""

View File

@ -26,10 +26,10 @@ from django.db.migrations.recorder import MigrationRecorder
from django.test import ( from django.test import (
LiveServerTestCase, SimpleTestCase, TestCase, override_settings, LiveServerTestCase, SimpleTestCase, TestCase, override_settings,
) )
from django.utils.version import PY36
custom_templates_dir = os.path.join(os.path.dirname(__file__), 'custom_templates') custom_templates_dir = os.path.join(os.path.dirname(__file__), 'custom_templates')
PY36 = sys.version_info >= (3, 6)
SYSTEM_CHECK_MSG = 'System check identified no issues' SYSTEM_CHECK_MSG = 'System check identified no issues'

View File

@ -5,7 +5,6 @@ import functools
import math import math
import os import os
import re import re
import sys
import uuid import uuid
from unittest import mock from unittest import mock
@ -25,11 +24,10 @@ from django.utils.deconstruct import deconstructible
from django.utils.functional import SimpleLazyObject from django.utils.functional import SimpleLazyObject
from django.utils.timezone import FixedOffset, get_default_timezone, utc from django.utils.timezone import FixedOffset, get_default_timezone, utc
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from django.utils.version import PY36
from .models import FoodManager, FoodQuerySet from .models import FoodManager, FoodQuerySet
PY36 = sys.version_info >= (3, 6)
class Money(decimal.Decimal): class Money(decimal.Decimal):
def deconstruct(self): def deconstruct(self):

View File

@ -19,6 +19,7 @@ from django.urls import reverse
from django.utils.encoding import force_bytes from django.utils.encoding import force_bytes
from django.utils.functional import SimpleLazyObject from django.utils.functional import SimpleLazyObject
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from django.utils.version import PY36
from django.views.debug import ( from django.views.debug import (
CLEANSED_SUBSTITUTE, CallableSettingWrapper, ExceptionReporter, CLEANSED_SUBSTITUTE, CallableSettingWrapper, ExceptionReporter,
cleanse_setting, technical_500_response, cleanse_setting, technical_500_response,
@ -31,8 +32,6 @@ from ..views import (
sensitive_method_view, sensitive_view, sensitive_method_view, sensitive_view,
) )
PY36 = sys.version_info >= (3, 6)
class User: class User:
def __str__(self): def __str__(self):