diff --git a/music21/base.py b/music21/base.py index a474d78f4..b85f2a9ac 100644 --- a/music21/base.py +++ b/music21/base.py @@ -800,7 +800,7 @@ def style(self) -> Style: return self._style @style.setter - def style(self, newStyle: Style|None): + def style(self, newStyle: Style): self._style = newStyle # convenience. diff --git a/music21/braille/basic.py b/music21/braille/basic.py index 32f976b07..fbc8e377b 100644 --- a/music21/braille/basic.py +++ b/music21/braille/basic.py @@ -531,7 +531,7 @@ def metronomeMarkToBraille(music21MetronomeMark): metroNote = note.Note('C4', quarterLength=music21MetronomeMark.referent.quarterLength) brailleNote = noteToBraille(metroNote, showOctave=False) metroTrans.append(brailleNote) - englishJoined = ' '.join(metroNote.editorial.get(brailleEnglish, [])) + englishJoined = ' '.join(metroNote.editorial.get('brailleEnglish', [])) music21MetronomeMark.editorial.brailleEnglish.append( f'Metronome Note {englishJoined}' ) diff --git a/music21/chord/__init__.py b/music21/chord/__init__.py index 6a9145f50..c3032f714 100644 --- a/music21/chord/__init__.py +++ b/music21/chord/__init__.py @@ -4194,7 +4194,8 @@ def setColor(self, value, pitchTarget=None): ''' # assign to base if pitchTarget is None and self._notes: - self.style.color = value + chord_style = self.style + chord_style.color = value for n in self._notes: n.style.color = value diff --git a/music21/derivation.py b/music21/derivation.py index ec3dfa695..223bf1695 100644 --- a/music21/derivation.py +++ b/music21/derivation.py @@ -240,7 +240,7 @@ def chain(self) -> Generator[base.Music21Object, None, None]: >>> list(s3.derivation.chain()) == [s2, s1] True ''' - orig: Music21Object | None = self.origin + orig: base.Music21Object | None = self.origin while orig is not None: yield orig orig = orig.derivation.origin diff --git a/music21/meter/core.py b/music21/meter/core.py index 1b665dd58..5f62d534f 100644 --- a/music21/meter/core.py +++ b/music21/meter/core.py @@ -1840,4 +1840,3 @@ def offsetToDepth(self, qLenPos, align='quantize', index: int|None = None): if __name__ == '__main__': import music21 music21.mainTest() - diff --git a/music21/stream/base.py b/music21/stream/base.py index 87cdfcc4f..09808e02e 100644 --- a/music21/stream/base.py +++ b/music21/stream/base.py @@ -7987,7 +7987,7 @@ def flatten(self: StreamType, retainContainers=False) -> StreamType: sNew_derivation.method = method sNew.derivation = sNew_derivation - + # storing .elements in here necessitates # create a new, independent cache instance in the flat representation sNew._cache = {} diff --git a/music21/style.py b/music21/style.py index c241ebc35..c402c7cf2 100644 --- a/music21/style.py +++ b/music21/style.py @@ -102,45 +102,25 @@ def __init__(self) -> None: self.dashLength: float|int|None = None self.spaceLength: float|int|None = None - def _getEnclosure(self) -> Enclosure|None: - return self._enclosure - def _setEnclosure(self, value: Enclosure|None): - if value is None: - self._enclosure = value - elif value == Enclosure.NONE: - self._enclosure = None - elif isinstance(value, Enclosure): - self._enclosure = value - elif isinstance(value, str): - try: - enc_value = Enclosure(value.lower()) - except ValueError as ve: - raise TextFormatException(f'Not a supported enclosure: {value!r}') from ve - - self._enclosure = enc_value - - else: - raise TextFormatException(f'Not a supported enclosure: {value!r}') - - enclosure = property(_getEnclosure, - _setEnclosure, - doc=''' + @property + def enclosure(self) -> Enclosure|None: + ''' Get or set the enclosure as a style.Enclosure enum or None. - Valid names are - "rectangle"/style.Enclosure.RECTANGLE, - "square"/style.Enclosure.SQUARE, - "oval"/style.Enclosure.OVAL, - "circle"/style.Enclosure.CIRCLE, - "bracket"/style.Enclosure.BRACKET, - "inverted-bracket"/style.Enclosure.INVERTED_BRACKET (output in musicxml 4 only) - None/"none"/style.Enclosure.NONE (returns Python None object) + Valid names are: + + * "rectangle"/style.Enclosure.RECTANGLE, + * "square"/style.Enclosure.SQUARE, + * "oval"/style.Enclosure.OVAL, + * "circle"/style.Enclosure.CIRCLE, + * "bracket"/style.Enclosure.BRACKET, + * "inverted-bracket"/style.Enclosure.INVERTED_BRACKET (output in musicxml 4 only) + * None/"none"/style.Enclosure.NONE (returns Python None object) or the following other shapes with their ALLCAPS Enclosure equivalents: - triangle, diamond, - pentagon, hexagon, heptagon, octagon, + triangle, diamond, pentagon, hexagon, heptagon, octagon, nonagon, or decagon. >>> tst = style.TextStyle() @@ -172,7 +152,27 @@ def _setEnclosure(self, value: Enclosure|None): Traceback (most recent call last): music21.style.TextFormatException: Not a supported enclosure: 4 - ''') + ''' + return self._enclosure + + @enclosure.setter + def enclosure(self, value: Enclosure|None): + if value is None: + self._enclosure = value + elif value == Enclosure.NONE: + self._enclosure = None + elif isinstance(value, Enclosure): + self._enclosure = value + elif isinstance(value, str): + try: + enc_value = Enclosure(value.lower()) + except ValueError as ve: + raise TextFormatException(f'Not a supported enclosure: {value!r}') from ve + + self._enclosure = enc_value + + else: + raise TextFormatException(f'Not a supported enclosure: {value!r}') def _getAbsoluteY(self): return self._absoluteY