Would you be open to dynamic class creation in the ball cosmos python api?
This would let tab completion work in ipython, and it makes scripting easier.
ie in python .
cosmos = CosmosSystem()
print(cosmos.Targets.TargetName.Tlm.TlmPacketName.TlmPacketPoint.value)
# Wait for packet
cosmos.Targets.TargetName.Tlm.TlmPacketName.Wait()
# Command example
cmd = cosmos.Targets.TargetName.Cmd.CmdPacketName()
cmd.cmd_value = 3
cmd.Send()