parameters: (parts)
return_statement: return dictionary
docstring: return a Part -> Name -> Voice dictionary
docstring_summary: return a Part -> Name -> Voice dictionary
docstring_tokens: return a Part - > Name - > Voice dictionary
function: def voices_in_part_in_parts(parts):
      """return a Part -> Name -> Voice dictionary"""
      # don't crash if Part doesn't have an id (that's invalid MusicXML,
      # but such files are out in the wild!)
      dictionary = {}
      for p in parts:
          voices = voices_in_part(p)
          if hasattr(p, "id"):
              dictionary[p.id] = voices
          else:
              # TODO: extract correct part id from other sources
              dictionary[None] = voices
      return dictionary
function_tokens: def voices_in_part_in_parts ( parts ) : # don't crash if Part doesn't have an id (that's invalid MusicXML, # but such files are out in the wild!) dictionary = { } for p in parts : voices = voices_in_part ( p ) if hasattr ( p , "id" ) : dictionary [ p . id ] = voices else : # TODO: extract correct part id from other sources dictionary [ None ] = voices return dictionary