msprime
msprime copied to clipboard
Add an ancestry model "type" or similar enum/flag
In #1573 we added the idea of a "duration" to ancestry models, which determines the maximum amount of time we can run. There was also some clarification in the docs about models that will run until full coalescence (e.g. Hudson), and those that will complete before this (e.g Sweeps, Pedigree).
It is current an easily made gotcha to do something like
ts = msprime.sim_ancestry(..., model=[msprime.DiscreteTimeWrightFisher(), msprime.StandardCoalescent()])
Because we've not specified a duration value, the second model will never run. We should add a type (or something) enum to the model class, which tells us whether models are "complete" or not, so that if we see any models in the list after a "complete" model with no duration value, we know it's an error.
Can change the warning in the docs about this too.