The raise ValueError('Cannot compute linearization, a cycle found') at line 99 in the _merge function of mro.py will never get a chance to intervene at a cycle. In such a case, the mro function will be endless recurring before _merge could be called.
Signaling here that something is wrong, however, isn't pointless. It does catch inconsistencies in the model. So the ValueError message should read as '..., an inconsistency found'.
(Not quite an issue, but the DependencyList method __len__ does not seem to be used anywhere. Might be a relict from a previous version. Meant as the count of direct parents of the current class?)
The
raise ValueError('Cannot compute linearization, a cycle found')at line 99 in the_mergefunction of mro.py will never get a chance to intervene at a cycle. In such a case, themrofunction will be endless recurring before_mergecould be called.Signaling here that something is wrong, however, isn't pointless. It does catch inconsistencies in the model. So the ValueError message should read as '..., an inconsistency found'.
(Not quite an issue, but the
DependencyListmethod__len__does not seem to be used anywhere. Might be a relict from a previous version. Meant as the count of direct parents of the current class?)