# Path: consort/tools/HashCachingObject.py
# class HashCachingObject(abctools.AbjadValueObject):
# 
#     ### CLASS VARIABLES ###
# 
#     __slots__ = (
#         '_format',
#         '_hash',
#         )
# 
#     ### INITIALIZER ###
# 
#     def __init__(self):
#         self._format = None
#         self._hash = None
# 
#     ### SPECIAL METHODS ###
# 
#     #@profile
#     def __eq__(self, expr):
#         if isinstance(expr, type(self)):
#             if format(self) == format(expr):
#                 return True
#         return False
# 
#     #@profile
#     def __format__(self, format_specification=''):
#         if self._format is None:
#             agent = systemtools.StorageFormatAgent(self)
#             self._format = agent.get_storage_format()
#         return self._format
# 
#     #@profile
#     def __hash__(self):
#         if self._hash is None:
#             self._hash = hash((type(self), format(self)))
#         return self._hash


import abjad
import collections
        import consort
        import consort
from consort.tools.HashCachingObject import HashCachingObject
                    layer=3,
                    voice_name='Viola 1 LH',
                    ),
                ]
            )

    '''

    ### CLASS VARIABLES ###

    __slots__ = (
        '_discard_inner_offsets',
        '_primary_music_specifier',
        '_primary_voice_name',
        '_rotation_indices',
        '_secondary_music_specifier',
        '_secondary_voice_name',
        )

    ### INITIALIZER ###

    def __init__(
        self,
        discard_inner_offsets=None,
        primary_music_specifier=None,
        primary_voice_name=None,
        rotation_indices=None,
        secondary_music_specifier=None,
        secondary_voice_name=None,
        ):

# Path: consort/tools/HashCachingObject.py
# class HashCachingObject(abctools.AbjadValueObject):
# 
#     ### CLASS VARIABLES ###
# 
#     __slots__ = (
#         '_format',
#         '_hash',
#         )
# 
#     ### INITIALIZER ###
# 
#     def __init__(self):
#         self._format = None
#         self._hash = None
# 
#     ### SPECIAL METHODS ###
# 
#     #@profile
#     def __eq__(self, expr):
#         if isinstance(expr, type(self)):
#             if format(self) == format(expr):
#                 return True
#         return False
# 
#     #@profile
#     def __format__(self, format_specification=''):
#         if self._format is None:
#             agent = systemtools.StorageFormatAgent(self)
#             self._format = agent.get_storage_format()
#         return self._format
# 
#     #@profile
#     def __hash__(self):
#         if self._hash is None:
#             self._hash = hash((type(self), format(self)))
#         return self._hash


# Path: consort/tools/CompositeMusicSpecifier.py
import abjad
import collections
        import consort
        import consort
from consort.tools.HashCachingObject import HashCachingObject

                    layer=3,
                    voice_name='Viola 1 LH',
                    ),
                ]
            )

    '''

    ### CLASS VARIABLES ###

    __slots__ = (
        '_discard_inner_offsets',
        '_primary_music_specifier',
        '_primary_voice_name',
        '_rotation_indices',
        '_secondary_music_specifier',
        '_secondary_voice_name',
        )

    ### INITIALIZER ###

    def __init__(
        self,
        discard_inner_offsets=None,
        primary_music_specifier=None,
        primary_voice_name=None,
        rotation_indices=None,
        secondary_music_specifier=None,
        secondary_voice_name=None,
        ):

        HashCachingObject.__init__(self)