Beispiel #1
0
 def testWeakref(self):
     from music21 import note
     n = note.Note()
     idStored = id(n)
     wn = common.wrapWeakref(n)
     n2 = common.unwrapWeakref(n)
     self.assertEqual(id(n), id(n2))
Beispiel #2
0
 def client(self, client):
     # client is the Stream that this derivation lives on
     if client is None:
         self._clientId = None
         self._client = None
     else:
         self._clientId = id(client)
         self._client = common.wrapWeakref(client)
Beispiel #3
0
    def testWeakref(self):
        from music21 import note

        n = note.Note()
        idStored = id(n)
        wn = common.wrapWeakref(n)
        n2 = common.unwrapWeakref(n)
        self.assertEqual(id(n), id(n2))
Beispiel #4
0
 def wrapWeakref(self):
     '''Wrap all stored objects with weakrefs.
     '''
     if not common.isWeakref(self._container):
         # update id in case it has changed
         self._containerId = id(self._container)
         post = common.wrapWeakref(self._container)
         self._container = post
Beispiel #5
0
 def client(self, client: t.Optional['music21.base.Music21Object']):
     # client is the Stream that this derivation lives on
     if client is None:
         self._clientId = None
         self._client = None
     else:
         self._clientId = id(client)
         self._client = common.wrapWeakref(client)
Beispiel #6
0
 def wrapWeakref(self):
     '''Wrap all stored objects with weakrefs.
     '''
     if not common.isWeakref(self._container):
         # update id in case it has changed
         self._containerId = id(self._container)
         post = common.wrapWeakref(self._container)
         self._container = post
Beispiel #7
0
 def setContainer(self, container):
     # container is the Stream that contains
     if container is None:
         self._containerId = None
         self._container = None
     else:
         self._containerId = id(container)
         self._container = common.wrapWeakref(container)
Beispiel #8
0
 def setContainer(self, container):
     # container is the Stream that this derivation lives on
     if container is None:
         self._containerId = None
         self._container = None
     else:
         self._containerId = id(container)
         self._container = common.wrapWeakref(container)
Beispiel #9
0
 def client(self, client):
     # client is the Stream that this derivation lives on
     if client is None:
         self._clientId = None
         self._client = None
     else:
         self._clientId = id(client)
         self._client = common.wrapWeakref(client)
Beispiel #10
0
    def add(self, spanner, component):
        '''Add a spanner and one or more component references.

        The `spanner` is the object represent the connections, such as a Slur or GroupBracket.

        The `component` is one or more (a list) objects, such as Note or Part.
        
        If the spanner already exists, the component will be added to the components list.


        >>> from music21 import *
        >>> class TestMock(object): pass
        >>> tm1 = TestMock()
        >>> n1 = note.Note('c2')
        >>> n2 = note.Note('g3')
        >>> sp1 = Spanners()
        >>> sp1.add(tm1, [n1, n2])
        >>> len(sp1)
        1
        '''
        idSpanner = id(spanner)
        if idSpanner not in self.keys():
            self._storage[idSpanner] = (common.wrapWeakref(spanner), [])
            self._idRef[idSpanner] = []  # just a list

        refPair = self._storage[idSpanner]
        idList = self._idRef[idSpanner]

        # presently this does not look for redundant entries
        # store component as weak ref
        if common.isListLike(component):
            bundle = component
        else:  # just append one
            bundle = [component]

        for sub in bundle:  # permit a lost of spanners
            refPair[1].append(common.wrapWeakref(sub))
            idList.append(id(sub))
Beispiel #11
0
    def add(self, spanner, component):
        """Add a spanner and one or more component references.

        The `spanner` is the object represent the connections, such as a Slur or GroupBracket.

        The `component` is one or more (a list) objects, such as Note or Part.
        
        If the spanner already exists, the component will be added to the components list.


        >>> from music21 import *
        >>> class TestMock(object): pass
        >>> tm1 = TestMock()
        >>> n1 = note.Note('c2')
        >>> n2 = note.Note('g3')
        >>> sp1 = Spanners()
        >>> sp1.add(tm1, [n1, n2])
        >>> len(sp1)
        1
        """
        idSpanner = id(spanner)
        if idSpanner not in self.keys():
            self._storage[idSpanner] = (common.wrapWeakref(spanner), [])
            self._idRef[idSpanner] = []  # just a list

        refPair = self._storage[idSpanner]
        idList = self._idRef[idSpanner]

        # presently this does not look for redundant entries
        # store component as weak ref
        if common.isListLike(component):
            bundle = component
        else:  # just append one
            bundle = [component]

        for sub in bundle:  # permit a lost of spanners
            refPair[1].append(common.wrapWeakref(sub))
            idList.append(id(sub))
Beispiel #12
0
 def __init__(self, modifierData, modifierString, parent):
     self.modifierData = modifierData
     self.modifierString = modifierString
     self.parent = common.wrapWeakref(parent)
Beispiel #13
0
 def __init__(self, parent=None, stateInfo=None):
     self.affectedTokens = []
     self.parent = common.wrapWeakref(parent)
     self.stateInfo = stateInfo
 def client(self, client):
     # client is the Stream that this status lives on
     self._client = common.wrapWeakref(client)
Beispiel #15
0
 def __setstate__(self, state):
     SlottedObject.__setstate__(self, state)
     self._client = common.wrapWeakref(self._client)
Beispiel #16
0
 def element(self, expr):
     self._source = common.wrapWeakref(expr)
Beispiel #17
0
 def _setParent(self, parent):
     if parent is not None:
         if hasattr(parent, 'classes') and 'NotRest' in parent.classes:
             self._parent = common.wrapWeakref(parent)
     else:
         self._parent = None
Beispiel #18
0
 def corpus(self, newCorpus):
     self._corpus = common.wrapWeakref(newCorpus)
Beispiel #19
0
 def corpus(self, newCorpus):
     self._corpus = common.wrapWeakref(newCorpus)
Beispiel #20
0
 def client(self, client):
     if client is not None:
         if hasattr(client, 'classes') and 'NotRest' in client.classes:
             self._client = common.wrapWeakref(client)
     else:
         self._client = None
Beispiel #21
0
 def _setAndWrapSite(self, site):
     if WEAKREF_ACTIVE:
         self.siteWeakref = common.wrapWeakref(site)
     else:
         self.siteWeakref = site
Beispiel #22
0
 def client(self, referent):
     self._client = common.wrapWeakref(referent)
Beispiel #23
0
 def __setstate__(self, state):
     common.SlottedObject.__setstate__(self, state)
     if WEAKREF_ACTIVE:
         self.siteWeakref = common.wrapWeakref(self.siteWeakref)
Beispiel #24
0
 def _setAndWrapSite(self, site):
     if WEAKREF_ACTIVE:
         self.siteWeakref = common.wrapWeakref(site)
     else:
         self.siteWeakref = site
     self.isDead = False
Beispiel #25
0
 def _setAndWrapSite(self, site):
     self.siteWeakref = common.wrapWeakref(site)
Beispiel #26
0
 def element(self, expr):
     self._source = common.wrapWeakref(expr)
Beispiel #27
0
 def client(self, referent):
     self._client = common.wrapWeakref(referent)
Beispiel #28
0
 def __setstate__(self, state):
     common.SlottedObject.__setstate__(self, state)
     if WEAKREF_ACTIVE:
         self.siteWeakref = common.wrapWeakref(self.siteWeakref)
Beispiel #29
0
 def parent(self, parent):
     if parent is not None:
         if hasattr(parent, 'classes') and 'NotRest' in parent.classes:
             self._parent = common.wrapWeakref(parent)
     else:
         self._parent = None
Beispiel #30
0
 def _setParent(self, parent):
     self._parent = common.wrapWeakref(parent)
Beispiel #31
0
 def client(self, client):
     if client is not None:
         if hasattr(client, 'classes') and 'NotRest' in client.classes:
             self._client = common.wrapWeakref(client)
     else:
         self._client = None
Beispiel #32
0
 def __setstate__(self, state):
     SlottedObject.__setstate__(self, state)
     self._client = common.wrapWeakref(self._client)
Beispiel #33
0
 def __init__(self, parent, stateInfo):
     self.affectedTokens = []
     self.parent = common.wrapWeakref(parent)
     self.stateInfo = stateInfo
Beispiel #34
0
 def _setParent(self, parent):
     self._parent = common.wrapWeakref(parent)
Beispiel #35
0
 def client(self, client):
     if client is not None:
         if isinstance(client, note.NotRest):
             self._client = common.wrapWeakref(client)
     else:
         self._client = None
Beispiel #36
0
 def __init__(self, modifierData, modifierString, parent):
     self.modifierData = modifierData
     self.modifierString = modifierString
     self.parent = common.wrapWeakref(parent)
Beispiel #37
0
 def _setAndWrapSite(self, site):
     self.siteWeakref = common.wrapWeakref(site)