mirror of
https://github.com/python/cpython.git
synced 2025-08-25 11:15:02 +00:00
gh-112278: Disable WMI queries on Windows after they time out (GH-112658)
This commit is contained in:
parent
b2923a61a1
commit
a955fd68d6
3 changed files with 44 additions and 15 deletions
|
@ -118,6 +118,10 @@ import re
|
|||
import sys
|
||||
import functools
|
||||
import itertools
|
||||
try:
|
||||
import _wmi
|
||||
except ImportError:
|
||||
_wmi = None
|
||||
|
||||
### Globals & Constants
|
||||
|
||||
|
@ -312,24 +316,26 @@ def _syscmd_ver(system='', release='', version='',
|
|||
version = _norm_version(version)
|
||||
return system, release, version
|
||||
|
||||
try:
|
||||
import _wmi
|
||||
except ImportError:
|
||||
def _wmi_query(*keys):
|
||||
|
||||
def _wmi_query(table, *keys):
|
||||
global _wmi
|
||||
if not _wmi:
|
||||
raise OSError("not supported")
|
||||
else:
|
||||
def _wmi_query(table, *keys):
|
||||
table = {
|
||||
"OS": "Win32_OperatingSystem",
|
||||
"CPU": "Win32_Processor",
|
||||
}[table]
|
||||
table = {
|
||||
"OS": "Win32_OperatingSystem",
|
||||
"CPU": "Win32_Processor",
|
||||
}[table]
|
||||
try:
|
||||
data = _wmi.exec_query("SELECT {} FROM {}".format(
|
||||
",".join(keys),
|
||||
table,
|
||||
)).split("\0")
|
||||
split_data = (i.partition("=") for i in data)
|
||||
dict_data = {i[0]: i[2] for i in split_data}
|
||||
return (dict_data[k] for k in keys)
|
||||
except OSError:
|
||||
_wmi = None
|
||||
raise OSError("not supported")
|
||||
split_data = (i.partition("=") for i in data)
|
||||
dict_data = {i[0]: i[2] for i in split_data}
|
||||
return (dict_data[k] for k in keys)
|
||||
|
||||
|
||||
_WIN32_CLIENT_RELEASES = [
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue