def _run(self, expr): violators = [] components = iterationtools.iterate_components_in_expr(expr) total_ids = [id(x) for x in components] unique_ids = sequencetools.truncate_runs_in_sequence(total_ids) if len(unique_ids) < len(total_ids): for current_id in unique_ids: if 1 < total_ids.count(current_id): violators.extend([x for x in components if id(x) == current_id]) return violators, len(total_ids)
def _get_likely_multiplier_of_components(components): pass from abjad.tools import scoretools from abjad.tools import selectiontools from abjad.tools import sequencetools assert all(isinstance(x, scoretools.Component) for x in components) logical_tie_duration_numerators = [] for expr in \ iterate(components).by_topmost_logical_ties_and_components(): if isinstance(expr, selectiontools.LogicalTie): logical_tie_duration = expr._preprolated_duration logical_tie_duration_numerators.append( logical_tie_duration.numerator) if len(sequencetools.truncate_runs_in_sequence( logical_tie_duration_numerators)) == 1: numerator = logical_tie_duration_numerators[0] denominator = mathtools.greatest_power_of_two_less_equal(numerator) likely_multiplier = durationtools.Multiplier( numerator, denominator) return likely_multiplier