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,6 +135,7 @@ def _get_cpu_topology() -> CPUTopology:
sockets = cores_info.get_physical_processors_count() sockets = cores_info.get_physical_processors_count()
cores = cores_info.get_physical_cores_count() cores = cores_info.get_physical_cores_count()
else: else:
if sys.getwindowsversion().major >= 10:
sockets = int( sockets = int(
subprocess.check_output( subprocess.check_output(
( (
@ -160,6 +161,31 @@ def _get_cpu_topology() -> CPUTopology:
.split('\n') .split('\n')
if core 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()
)
return CPUTopology(sockets=sockets, cores=cores, threads=multiprocessing.cpu_count()) return CPUTopology(sockets=sockets, cores=cores, threads=multiprocessing.cpu_count())