dev-python/passlib: Port to py39

Signed-off-by: Michał Górny <mgorny@gentoo.org>
This commit is contained in:
Michał Górny
2020-05-26 17:29:27 +02:00
parent e53adb723b
commit 14e42da775
2 changed files with 27 additions and 3 deletions

View File

@@ -0,0 +1,19 @@
diff --git a/passlib/utils/__init__.py b/passlib/utils/__init__.py
index 69b55e5..d18ec50 100644
--- a/passlib/utils/__init__.py
+++ b/passlib/utils/__init__.py
@@ -807,7 +807,13 @@ else:
if isinstance(hash, bytes):
hash = hash.decode("ascii")
- result = _crypt(secret, hash)
+ try:
+ result = _crypt(secret, hash)
+ except OSError:
+ # new in py39 -- per https://bugs.python.org/issue39289,
+ # crypt() now throws OSError for various things, mainly unknown hash formats
+ # translating that to None for now (may revise safe_crypt behavior in future)
+ return None
if PYPY and isinstance(result, bytes):
result = result.decode("utf-8")
if not result or result[0:1] in _invalid_prefixes:

View File

@@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python{2_7,3_{6,7,8}} pypy3 )
PYTHON_COMPAT=( python{2_7,3_{6,7,8,9}} pypy3 )
inherit distutils-r1
@@ -18,11 +18,16 @@ IUSE="+bcrypt doc +scrypt +totp"
RDEPEND="bcrypt? ( dev-python/bcrypt[${PYTHON_USEDEP}] )
totp? ( dev-python/cryptography[${PYTHON_USEDEP}] )
scrypt? ( dev-python/scrypt[${PYTHON_USEDEP}] )"
DEPEND="${RDEPEND}
dev-python/setuptools[${PYTHON_USEDEP}]"
BDEPEND="
test? (
dev-python/bcrypt[${PYTHON_USEDEP}]
dev-python/cryptography[${PYTHON_USEDEP}]
dev-python/scrypt[${PYTHON_USEDEP}]
)"
PATCHES=(
"${FILESDIR}/passlib-1.7.2-pypy3.patch"
"${FILESDIR}/passlib-1.7.2-py39.patch"
)
distutils_enable_tests nose