Example #1
0
 def _add_container_identifiers(self):
     if self.environment == "docs" and not getattr(
         self, "test_container_identifiers", False
     ):
         return
     segment_name = self.segment_name or ""
     segment_name = String(segment_name).to_segment_lilypond_identifier()
     contexts = []
     try:
         context = self.score["Global_Skips"]
         contexts.append(context)
     except ValueError:
         pass
     try:
         context = self.score["Global_Rests"]
         contexts.append(context)
     except ValueError:
         pass
     for voice in iterate(self.score).components(Voice):
         if inspect(voice).annotation("INTERMITTENT") is True:
             continue
         contexts.append(voice)
     container_to_part_assignment = OrderedDict()
     for context in contexts:
         if segment_name:
             context_identifier = f"{segment_name}_{context.name}"
         else:
             context_identifier = context.name
         context.identifier = f"%*% {context_identifier}"
         part_container_count = 0
         for container in iterate(context).components(Container):
             if not container.identifier:
                 continue
             if container.identifier.startswith("%*% Part"):
                 part_container_count += 1
                 globals_ = globals()
                 part = container.identifier.strip("%*% ")
                 part = eval(part, globals_)
                 suffix = String().base_26(part_container_count).lower()
                 container_identifier = f"{context_identifier}_{suffix}"
                 container_identifier = String(container_identifier)
                 assert container_identifier.is_lilypond_identifier()
                 assert (
                     container_identifier
                     not in container_to_part_assignment
                 )
                 timespan = inspect(container).timespan()
                 pair = (part, timespan)
                 container_to_part_assignment[container_identifier] = pair
                 container.identifier = f"%*% {container_identifier}"
     for staff in iterate(self.score).components(Staff):
         if segment_name:
             context_identifier = f"{segment_name}_{staff.name}"
         else:
             context_identifier = staff.name
         staff.identifier = f"%*% {context_identifier}"
     self._container_to_part_assignment = container_to_part_assignment
Example #2
0
 def _add_container_identifiers(self):
     if (self.environment == 'docs'
             and not getattr(self, 'test_container_identifiers', False)):
         return
     segment_name = self.segment_name or ''
     segment_name = String(segment_name).to_segment_lilypond_identifier()
     contexts = []
     try:
         context = self.score['Global_Skips']
         contexts.append(context)
     except ValueError:
         pass
     try:
         context = self.score['Global_Rests']
         contexts.append(context)
     except ValueError:
         pass
     for voice in iterate(self.score).components(Voice):
         if inspect(voice).annotation('INTERMITTENT') is True:
             continue
         contexts.append(voice)
     container_to_part_assignment = OrderedDict()
     for context in contexts:
         if segment_name:
             context_identifier = f'{segment_name}_{context.name}'
         else:
             context_identifier = context.name
         context.identifier = f'%*% {context_identifier}'
         part_container_count = 0
         for container in iterate(context).components(Container):
             if not container.identifier:
                 continue
             if container.identifier.startswith('%*% Part'):
                 part_container_count += 1
                 globals_ = globals()
                 part = container.identifier.strip('%*% ')
                 part = eval(part, globals_)
                 suffix = String().base_26(part_container_count).lower()
                 container_identifier = f'{context_identifier}_{suffix}'
                 container_identifier = String(container_identifier)
                 assert container_identifier.is_lilypond_identifier()
                 assert container_identifier not in \
                     container_to_part_assignment
                 timespan = inspect(container).timespan()
                 pair = (part, timespan)
                 container_to_part_assignment[container_identifier] = pair
                 container.identifier = f'%*% {container_identifier}'
     for staff in iterate(self.score).components(Staff):
         if segment_name:
             context_identifier = f'{segment_name}_{staff.name}'
         else:
             context_identifier = staff.name
         staff.identifier = f'%*% {context_identifier}'
     self._container_to_part_assignment = container_to_part_assignment
Example #3
0
 def _add_container_identifiers(self):
     if self.environment == "docs" and not getattr(
             self, "test_container_identifiers", False):
         return
     segment_name = self.segment_name or ""
     segment_name = String(segment_name).to_segment_lilypond_identifier()
     contexts = []
     try:
         context = self.score["Global_Skips"]
         contexts.append(context)
     except ValueError:
         pass
     try:
         context = self.score["Global_Rests"]
         contexts.append(context)
     except ValueError:
         pass
     for voice in iterate(self.score).components(Voice):
         if inspect(voice).has_indicator(const.INTERMITTENT):
             continue
         contexts.append(voice)
     container_to_part_assignment = OrderedDict()
     context_name_counts = {}
     for context in contexts:
         if context.name is None:
             message = "all contexts must be named:\n"
             message += f"    {repr(context)}"
             raise Exception(message)
         count = context_name_counts.get(context.name, 0)
         if count == 0:
             suffixed_context_name = context.name
         else:
             suffix = String.base_26(count)
             suffixed_context_name = f"{context.name}_{suffix}"
         context_name_counts[context.name] = count + 1
         if segment_name:
             context_identifier = f"{segment_name}_{suffixed_context_name}"
         else:
             context_identifier = suffixed_context_name
         context.identifier = f"%*% {context_identifier}"
         part_container_count = 0
         for container in iterate(context).components(Container):
             if not container.identifier:
                 continue
             if container.identifier.startswith("%*% Part"):
                 part_container_count += 1
                 globals_ = globals()
                 part = container.identifier.strip("%*% ")
                 part = eval(part, globals_)
                 suffix = String().base_26(part_container_count).lower()
                 container_identifier = f"{context_identifier}_{suffix}"
                 container_identifier = String(container_identifier)
                 assert container_identifier.is_lilypond_identifier()
                 assert (container_identifier
                         not in container_to_part_assignment)
                 timespan = inspect(container).timespan()
                 pair = (part, timespan)
                 container_to_part_assignment[container_identifier] = pair
                 container.identifier = f"%*% {container_identifier}"
     for staff in iterate(self.score).components(Staff):
         if segment_name:
             context_identifier = f"{segment_name}_{staff.name}"
         else:
             context_identifier = staff.name
         staff.identifier = f"%*% {context_identifier}"
     self._container_to_part_assignment = container_to_part_assignment