Unclear check for skipping scaling due to missing bandwidths or missing descriptors
We skip old results when scaling, but there are a few things wrong with this check:
- It is hard to tell what this line does, because it mixes "and" and "or" without brackets: l.desc_bw_obs_last or l.desc_bw_obs_mean and l.desc_bw_avg
- We skip scaling if any input is missing, but then we check desc_bw_obs_type and ignore some inputs
- If we are missing a descriptor for long enough, we stop generating results for a relay. We could use a substitute value instead.
if not(l.desc_bw_obs_last or l.desc_bw_obs_mean and l.desc_bw_avg):
log.debug("Skipping %s from scaling, because there were not "
"descriptor bandwidths.", l.nick)
continue
if desc_bw_obs_type == TORFLOW_OBS_LAST:
desc_bw_obs = l.desc_bw_obs_last
elif desc_bw_obs_type == TORFLOW_OBS_MEAN:
desc_bw_obs = l.desc_bw_obs_mean