Fix #101873: wmic not found on insider builds of Windows 11 #101874

Merged
Sergey Sharybin merged 3 commits from xavierh/blender-open-data:xavierh-patch-1 into main 2024-09-30 17:26:53 +02:00
Showing only changes of commit 52ef1b8b51 - Show all commits

View File

@ -135,31 +135,57 @@ def _get_cpu_topology() -> CPUTopology:
sockets = cores_info.get_physical_processors_count()
cores = cores_info.get_physical_cores_count()
else:
sockets = int(
subprocess.check_output(
(
'powershell',
'-Command',
'Get-CimInstance Win32_ComputerSystem | Select-Object -ExpandProperty NumberOfProcessors'
),
text=True,
if sys.getwindowsversion().major >= 10:
sockets = int(
subprocess.check_output(
(
'powershell',
'-Command',
'Get-CimInstance Win32_ComputerSystem | Select-Object -ExpandProperty NumberOfProcessors'
),
text=True,
)
.strip()
)
.strip()
)
cores = sum(
int(core) for core in subprocess.check_output(
(
'powershell',
'-Command',
'Get-CimInstance Win32_Processor | Select-Object -ExpandProperty NumberOfCores'
),
text=True
cores = sum(
int(core) for core in subprocess.check_output(
(
'powershell',
'-Command',
'Get-CimInstance Win32_Processor | Select-Object -ExpandProperty NumberOfCores'
),
text=True
)
.strip()
.split('\n')
if core
)
else:
sockets = int(
subprocess.check_output(
(
'wmic',
'computersystem',
'get',
'NumberOfProcessors',
'/value',
),
text=True,
)
.strip()
.split('=')[1]
)
cores = sum(
int(line.strip().split('=')[1])
for line in subprocess.check_output(
('wmic', 'cpu', 'get', 'NumberOfCores', '/value'), text=True
)
.strip()
.split('\n')
if line.strip()
)
.strip()
.split('\n')
if core
)
return CPUTopology(sockets=sockets, cores=cores, threads=multiprocessing.cpu_count())