В Paraview можно сделать Edit -> Reset Session. Он приносит чистое состояние.
Как это можно сделать программно из скрипта Python? Я имею в виду, что он работает как с графическим интерфейсом (в оболочке Python и как макрос), так и с интерфейсом командной строки (pvpython
).
PS: я бы не знал, в чем разница между сбросом сеанса и закрытием / повторным открытием Paraview. Я не проверял это полностью, но во всем, что я мог наблюдать, они ведут себя одинаково.
PS2: В настоящее время я использую надуманный способ, но он не совсем эквивалентен сбросу сеанса.
def reset_session() :
RemoveViewsAndLayouts()
clear_pipeline()
return
def clear_pipeline() :
srcs = GetSources()
for key, val in srcs.items() :
#print( "key = " + str(key) + ", value = " + str(val) )
#print( " (" + str(type(key)) + "), (" + str(type(val)) + ")" )
Delete(val)
del val
return
PS3: я проверил ответ с этим минимальным кодом, выполненным из графического интерфейса из Macros -> mymacro, и он вылетает.
Disconnect()
Connect()