11"""Simple functions for checking dependency versions."""
22
33import sys
4- from distutils .version import LooseVersion
54from os .path import join
65
6+ import packaging .version
7+
78from pythonforandroid .logger import info , warning
89from pythonforandroid .util import BuildInterruptingException
910
@@ -59,9 +60,9 @@ def check_ndk_version(ndk_dir):
5960 rewrote to raise an exception in case that an NDK version lower than
6061 the minimum supported is detected.
6162 """
62- version = read_ndk_version (ndk_dir )
63+ ndk_version = read_ndk_version (ndk_dir )
6364
64- if version is None :
65+ if ndk_version is None :
6566 warning (READ_ERROR_NDK_MESSAGE .format (ndk_dir = ndk_dir ))
6667 warning (
6768 ENSURE_RIGHT_NDK_MESSAGE .format (
@@ -81,16 +82,11 @@ def check_ndk_version(ndk_dir):
8182 minor_to_letter .update (
8283 {n + 1 : chr (i ) for n , i in enumerate (range (ord ('b' ), ord ('b' ) + 25 ))}
8384 )
84-
85- major_version = version .version [0 ]
86- letter_version = minor_to_letter [version .version [1 ]]
87- string_version = '{major_version}{letter_version}' .format (
88- major_version = major_version , letter_version = letter_version
89- )
85+ string_version = f"{ ndk_version .major } { minor_to_letter [ndk_version .minor ]} "
9086
9187 info (CURRENT_NDK_VERSION_MESSAGE .format (ndk_version = string_version ))
9288
93- if major_version < MIN_NDK_VERSION :
89+ if ndk_version . major < MIN_NDK_VERSION :
9490 raise BuildInterruptingException (
9591 NDK_LOWER_THAN_SUPPORTED_MESSAGE .format (
9692 min_supported = MIN_NDK_VERSION , ndk_url = NDK_DOWNLOAD_URL
@@ -104,7 +100,7 @@ def check_ndk_version(ndk_dir):
104100 )
105101 ),
106102 )
107- elif major_version > MAX_NDK_VERSION :
103+ elif ndk_version . major > MAX_NDK_VERSION :
108104 warning (
109105 RECOMMENDED_NDK_VERSION_MESSAGE .format (
110106 recommended_ndk_version = RECOMMENDED_NDK_VERSION
@@ -130,9 +126,9 @@ def read_ndk_version(ndk_dir):
130126 return
131127
132128 # Line should have the form "Pkg.Revision = ..."
133- ndk_version = LooseVersion ( line .split ('=' )[- 1 ].strip () )
129+ unparsed_ndk_version = line .split ('=' )[- 1 ].strip ()
134130
135- return ndk_version
131+ return packaging . version . parse ( unparsed_ndk_version )
136132
137133
138134MIN_TARGET_API = 30
@@ -191,8 +187,9 @@ def check_ndk_api(ndk_api, android_api):
191187
192188MIN_PYTHON_MAJOR_VERSION = 3
193189MIN_PYTHON_MINOR_VERSION = 6
194- MIN_PYTHON_VERSION = LooseVersion ('{major}.{minor}' .format (major = MIN_PYTHON_MAJOR_VERSION ,
195- minor = MIN_PYTHON_MINOR_VERSION ))
190+ MIN_PYTHON_VERSION = packaging .version .Version (
191+ f"{ MIN_PYTHON_MAJOR_VERSION } .{ MIN_PYTHON_MINOR_VERSION } "
192+ )
196193PY2_ERROR_TEXT = (
197194 'python-for-android no longer supports running under Python 2. Either upgrade to '
198195 'Python {min_version} or higher (recommended), or revert to python-for-android 2019.07.08.'
0 commit comments