make BudgetItem.freq a property
This makes BudgetItem
frequency arrays properties instead of attributes. As an attribute, BudgetItem.freq
can be set directly but this doesn't update the precomp cache or any of the frequency arrays of the cal_objs
and noise_objs
for instances of Budget
. This is a problem if run
is called without any keyword arguments after changing freq
. Now that freq
is a property, the setter clears the precomp cache and recurses through the cal_objs
and noise_objs
if applicable.
So this works correctly now
traces1 = budget.run(freq=freq1)
budget.freq = freq2
traces2 = budget.run()