# 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 copy
    import funcsigs
    import inspect as funcsigs
from abjad import attach
from consort.tools.HashCachingObject import HashCachingObject
                c'4 -\accent -\staccato
                d'4 -\accent -\staccato
                e'4 -\accent -\staccato
                f'4 -\accent -\staccato
            }

    '''

    ### CLASS VARIABLES ###

    __slots__ = (
        '_attachments',
        '_scope',
        '_selector',
        '_is_annotation',
        '_is_destructive',
        '_use_only_first_attachment',
        )

    ### INITIALIZER ###

    def __init__(
        self,
        attachments=None,
        selector=None,
        scope=None,
        is_annotation=None,
        is_destructive=None,
        use_only_first_attachment=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/AttachmentExpression.py
import abjad
import collections
import copy
    import funcsigs
    import inspect as funcsigs
from abjad import attach
from consort.tools.HashCachingObject import HashCachingObject

                c'4 -\accent -\staccato
                d'4 -\accent -\staccato
                e'4 -\accent -\staccato
                f'4 -\accent -\staccato
            }

    '''

    ### CLASS VARIABLES ###

    __slots__ = (
        '_attachments',
        '_scope',
        '_selector',
        '_is_annotation',
        '_is_destructive',
        '_use_only_first_attachment',
        )

    ### INITIALIZER ###

    def __init__(
        self,
        attachments=None,
        selector=None,
        scope=None,
        is_annotation=None,
        is_destructive=None,
        use_only_first_attachment=None,
        ):

        HashCachingObject.__init__(self)