music21.common.weakrefTools¶
Functions¶
- music21.common.weakrefTools.unwrapWeakref(referent: ReferenceType | Any) Any ¶
Utility function that gets an object that might be an object itself or a weak reference to an object. It returns obj() if it’s a weakref. and obj if it’s not.
>>> class Mock: ... pass >>> a1 = Mock() >>> a2 = Mock() >>> a2.strong = a1 >>> a2.weak = common.wrapWeakref(a1) >>> common.unwrapWeakref(a2.strong) is a1 True >>> common.unwrapWeakref(a2.weak) is a1 True >>> common.unwrapWeakref(a2.strong) is common.unwrapWeakref(a2.weak) True
- music21.common.weakrefTools.wrapWeakref(referent: _T) ReferenceType | _T ¶
utility function that wraps objects as weakrefs but does not wrap already wrapped objects; also prevents wrapping the unwrappable “None” type, etc.
>>> import weakref >>> class Mock: ... pass >>> a1 = Mock() >>> ref1 = common.wrapWeakref(a1) >>> ref1 <weakref at 0x101f29ae8; to ...Mock' at 0x101e45358> >>> ref2 = common.wrapWeakref(ref1) >>> ref2 <weakref at 0x101f299af; to ...Mock' at 0x101e45358> >>> ref3 = common.wrapWeakref(5) >>> ref3 5