def __call__(self, parser, namespace, values, option_string=None): setattr(namespace, self.dest, values) if namespace.tcxo_type == "poly": coeffs = [] hasHighOrder = False srcA = [ namespace.tcxo_a3, namespace.tcxo_a2, namespace.tcxo_a1, namespace.tcxo_a0 ] for a in srcA: if a is not None: coeffs.append(a) hasHighOrder = True elif hasHighOrder: coeffs.append(0.) tcxo = TCXOPoly(coeffs) elif namespace.tcxo_type == "sine": initial = 0. ampl = 0.5 period_s = 1. if namespace.tcxo_a0 is not None: ampl = namespace.tcxo_a0 if namespace.tcxo_a1 is not None: ampl = namespace.tcxo_a1 if namespace.tcxo_period is not None: period_s = namespace.tcxo_period tcxo = TCXOSine(initial, ampl, period_s) else: raise ValueError("Unsupported TCXO type") namespace.tcxo = tcxo