Skip to content

Commit d307d05

Browse files
authored
Fixes platform.win32_ver on non-Windows platforms (GH-12912)
1 parent 2644907 commit d307d05

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

Lib/platform.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -339,10 +339,6 @@ def win32_ver(release='', version='', csd='', ptype=''):
339339
from sys import getwindowsversion
340340
except ImportError:
341341
return release, version, csd, ptype
342-
try:
343-
from winreg import OpenKeyEx, QueryValueEx, CloseKey, HKEY_LOCAL_MACHINE
344-
except ImportError:
345-
from _winreg import OpenKeyEx, QueryValueEx, CloseKey, HKEY_LOCAL_MACHINE
346342

347343
winver = getwindowsversion()
348344
maj, min, build = winver.platform_version or winver[:3]
@@ -368,16 +364,20 @@ def win32_ver(release='', version='', csd='', ptype=''):
368364
_WIN32_SERVER_RELEASES.get((maj, None)) or
369365
release)
370366

371-
key = None
372367
try:
373-
key = OpenKeyEx(HKEY_LOCAL_MACHINE,
374-
r'SOFTWARE\Microsoft\Windows NT\CurrentVersion')
375-
ptype = QueryValueEx(key, 'CurrentType')[0]
376-
except:
368+
try:
369+
import winreg
370+
except ImportError:
371+
import _winreg as winreg
372+
except ImportError:
377373
pass
378-
finally:
379-
if key:
380-
CloseKey(key)
374+
else:
375+
try:
376+
cvkey = r'SOFTWARE\Microsoft\Windows NT\CurrentVersion'
377+
with winreg.OpenKeyEx(HKEY_LOCAL_MACHINE, cvkey) as key:
378+
ptype = QueryValueEx(key, 'CurrentType')[0]
379+
except:
380+
pass
381381

382382
return release, version, csd, ptype
383383

0 commit comments

Comments
 (0)