bpo-46933: Make pwd module optional (GH-31700)

Co-authored-by: Erlend Egeberg Aasland <erlend.aasland@innova.no>
This commit is contained in:
Christian Heimes 2022-03-07 14:36:47 +02:00 committed by GitHub
parent 3b3be05a16
commit ca9689f8da
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 496 additions and 560 deletions

View file

@ -241,7 +241,11 @@ def expanduser(path):
i = len(path)
if i == 1:
if 'HOME' not in os.environ:
import pwd
try:
import pwd
except ImportError:
# pwd module unavailable, return path unchanged
return path
try:
userhome = pwd.getpwuid(os.getuid()).pw_dir
except KeyError:
@ -251,7 +255,11 @@ def expanduser(path):
else:
userhome = os.environ['HOME']
else:
import pwd
try:
import pwd
except ImportError:
# pwd module unavailable, return path unchanged
return path
name = path[1:i]
if isinstance(name, bytes):
name = str(name, 'ASCII')