mirror of
https://github.com/django/django.git
synced 2025-07-04 09:49:12 +00:00
[3.2.x] Refs #32074 -- Removed usage of Python's deprecated distutils.version package.
The distutils package was formally deprecated in Python 3.10 and will be removed in Python 3.12. Backport of b8c9e9fae14676d2e81242cb8df1e2eeef9c3a2d from main
This commit is contained in:
parent
faeae84dad
commit
8bebb1c04a
@ -3,7 +3,8 @@ import functools
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
from distutils.version import LooseVersion
|
||||
|
||||
from django.utils.regex_helper import _lazy_re_compile
|
||||
|
||||
# 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
|
||||
@ -90,15 +91,21 @@ def get_git_changeset():
|
||||
return timestamp.strftime('%Y%m%d%H%M%S')
|
||||
|
||||
|
||||
version_component_re = _lazy_re_compile(r'(\d+|[a-z]+|\.)')
|
||||
|
||||
|
||||
def get_version_tuple(version):
|
||||
"""
|
||||
Return a tuple of version numbers (e.g. (1, 2, 3)) from the version
|
||||
string (e.g. '1.2.3').
|
||||
"""
|
||||
loose_version = LooseVersion(version)
|
||||
version_numbers = []
|
||||
for item in loose_version.version:
|
||||
if not isinstance(item, int):
|
||||
for item in version_component_re.split(version):
|
||||
if item and item != '.':
|
||||
try:
|
||||
component = int(item)
|
||||
except ValueError:
|
||||
break
|
||||
version_numbers.append(item)
|
||||
else:
|
||||
version_numbers.append(component)
|
||||
return tuple(version_numbers)
|
||||
|
Loading…
x
Reference in New Issue
Block a user