示例#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))
示例#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)
示例#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))
示例#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
示例#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)
示例#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
示例#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)
示例#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)
示例#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)
示例#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))
示例#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))
示例#12
0
 def __init__(self, modifierData, modifierString, parent):
     self.modifierData = modifierData
     self.modifierString = modifierString
     self.parent = common.wrapWeakref(parent)
示例#13
0
 def __init__(self, parent=None, stateInfo=None):
     self.affectedTokens = []
     self.parent = common.wrapWeakref(parent)
     self.stateInfo = stateInfo
示例#14
0
 def client(self, client):
     # client is the Stream that this status lives on
     self._client = common.wrapWeakref(client)
示例#15
0
 def __setstate__(self, state):
     SlottedObject.__setstate__(self, state)
     self._client = common.wrapWeakref(self._client)
示例#16
0
 def element(self, expr):
     self._source = common.wrapWeakref(expr)
示例#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
示例#18
0
 def corpus(self, newCorpus):
     self._corpus = common.wrapWeakref(newCorpus)
示例#19
0
 def corpus(self, newCorpus):
     self._corpus = common.wrapWeakref(newCorpus)
示例#20
0
文件: volume.py 项目: YiqianZh/msps
 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
示例#21
0
文件: sites.py 项目: spyamine/music21
 def _setAndWrapSite(self, site):
     if WEAKREF_ACTIVE:
         self.siteWeakref = common.wrapWeakref(site)
     else:
         self.siteWeakref = site
示例#22
0
 def client(self, referent):
     self._client = common.wrapWeakref(referent)
示例#23
0
文件: sites.py 项目: 05565/music21
 def __setstate__(self, state):
     common.SlottedObject.__setstate__(self, state)
     if WEAKREF_ACTIVE:
         self.siteWeakref = common.wrapWeakref(self.siteWeakref)
示例#24
0
 def _setAndWrapSite(self, site):
     if WEAKREF_ACTIVE:
         self.siteWeakref = common.wrapWeakref(site)
     else:
         self.siteWeakref = site
     self.isDead = False
示例#25
0
文件: sites.py 项目: ifitz/music21
 def _setAndWrapSite(self, site):
     self.siteWeakref = common.wrapWeakref(site)
示例#26
0
 def element(self, expr):
     self._source = common.wrapWeakref(expr)
示例#27
0
 def client(self, referent):
     self._client = common.wrapWeakref(referent)
示例#28
0
 def __setstate__(self, state):
     common.SlottedObject.__setstate__(self, state)
     if WEAKREF_ACTIVE:
         self.siteWeakref = common.wrapWeakref(self.siteWeakref)
示例#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
示例#30
0
 def _setParent(self, parent):
     self._parent = common.wrapWeakref(parent)
示例#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
示例#32
0
文件: volume.py 项目: YiqianZh/msps
 def __setstate__(self, state):
     SlottedObject.__setstate__(self, state)
     self._client = common.wrapWeakref(self._client)
示例#33
0
 def __init__(self, parent, stateInfo):
     self.affectedTokens = []
     self.parent = common.wrapWeakref(parent)
     self.stateInfo = stateInfo
示例#34
0
 def _setParent(self, parent):
     self._parent = common.wrapWeakref(parent)
示例#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
示例#36
0
 def __init__(self, modifierData, modifierString, parent):
     self.modifierData = modifierData
     self.modifierString = modifierString
     self.parent = common.wrapWeakref(parent)
示例#37
0
 def _setAndWrapSite(self, site):
     self.siteWeakref = common.wrapWeakref(site)