# 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 os
        import consort
        import consort
from abjad.tools import instrumenttools
from abjad.tools import lilypondfiletools
from abjad.tools import markuptools
from abjad.tools import rhythmmakertools
from consort.tools.HashCachingObject import HashCachingObject
    __slots__ = (
        '_attachment_handler',
        '_color',
        '_comment',
        '_grace_handler',
        '_instrument',
        '_labels',
        '_minimum_phrase_duration',
        '_pitch_handler',
        '_register_handler',
        '_rhythm_maker',
        '_seed',
        )

    ### INITIALIZER ###

    def __init__(
        self,
        attachment_handler=None,
        color=None,
        comment=None,
        grace_handler=None,
        instrument=None,
        labels=None,
        minimum_phrase_duration=None,
        pitch_handler=None,
        register_handler=None,
        rhythm_maker=None,
        seed=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/MusicSpecifier.py
import abjad
import collections
import os
        import consort
        import consort
from abjad.tools import instrumenttools
from abjad.tools import lilypondfiletools
from abjad.tools import markuptools
from abjad.tools import rhythmmakertools
from consort.tools.HashCachingObject import HashCachingObject

    __slots__ = (
        '_attachment_handler',
        '_color',
        '_comment',
        '_grace_handler',
        '_instrument',
        '_labels',
        '_minimum_phrase_duration',
        '_pitch_handler',
        '_register_handler',
        '_rhythm_maker',
        '_seed',
        )

    ### INITIALIZER ###

    def __init__(
        self,
        attachment_handler=None,
        color=None,
        comment=None,
        grace_handler=None,
        instrument=None,
        labels=None,
        minimum_phrase_duration=None,
        pitch_handler=None,
        register_handler=None,
        rhythm_maker=None,
        seed=None,
        ):

        HashCachingObject.__init__(self)