§
    „Øj�  ã                  óØ   — d dl mZ d dlZd dlmZ d dlmZ d dlmZ  ej	        e
¦  «        Z G d„ de¦  «        Z G d„ d	ej        ¦  «        Zed
k    rd dlZ ej        e¦  «         dS dS )é    )ÚannotationsN)Úenvironment©ÚdefaultDeepcopy)ÚSlottedObjectMixinc                  óÚ   — e Zd ZdZdZdd„Zdd„Zd„ Zd„ Zd„ Z	e
d	„ ¦   «         Zej        d
„ ¦   «         Ze
d„ ¦   «         Zej        d„ ¦   «         Ze
d„ ¦   «         Zej        d„ ¦   «         ZdS )ÚStreamStatusa   
    An object that stores the current notation state for the client stream.

    Separates out tasks such as whether notation has been made, etc.

    >>> s = stream.Stream()
    >>> ss = s.streamStatus
    >>> ss
    <music21.stream.streamStatus.StreamStatus object at 0x...>
    >>> s.streamStatus.client is s
    True

    Copying of StreamStatus and surrounding Streams

    >>> import copy
    >>> ss2 = copy.deepcopy(ss)
    >>> ss2.client is None
    True

    >>> s2 = copy.deepcopy(s)
    >>> s2.streamStatus
    <music21.stream.streamStatus.StreamStatus object at 0x...>
    >>> s2.streamStatus is ss
    False
    >>> s2.streamStatus.client is s2
    True
    ©Ú_accidentalsÚ_beamsÚ_concertPitchÚ_dirtyÚ_enharmonicsÚ	_measuresÚ
_ornamentsÚ_restsÚ_tiesÚ_tupletsÚclientNc                ó    — d | _         d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _	        || _
        d S ©Nr
   )Úselfr   s     ú�/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/music21/stream/streamStatus.pyÚ__init__zStreamStatus.__init__G   sV   € Ø ˆÔØˆŒØ!ˆÔØˆŒØ ˆÔØˆŒØˆŒØˆŒØˆŒ
ØˆŒØˆŒˆˆó    c                ó(   — t          | |dh¬¦  «        S )zs
        Manage deepcopying by creating a new reference to the same object.
        leaving out the client
        r   )ÚignoreAttributesr   )r   Úmemos     r   Ú__deepcopy__zStreamStatus.__deepcopy__V   s   € õ
 ˜t T¸X¸JÐGÑGÔGÐGr   c                óP   — | j         j        D ]}|j        �|j        j        � dS ŒdS )a^  
        If Accidentals.displayStatus is None for all contained pitches, it as
        assumed that accidentals have not been set for display and/or
        makeAccidentals has not been run. If any Accidental has displayStatus
        other than None, this method returns True, regardless of if
        makeAccidentals has actually been run.
        NTF)r   ÚpitchesÚ
accidentalÚdisplayStatus)r   Úps     r   ÚhaveAccidentalsBeenMadez$StreamStatus.haveAccidentalsBeenMade_   s8   € ð ”Ô$ð 	 ð 	 ˆAØŒ|Ð'Ø”<Ô-Ð9Ø˜4˜4øØˆur   c                óp   — | j                              dd¬¦  «        D ]}|j        �|j        j        r dS ŒdS )a  
        If any Note in this Stream has .beams defined, it as assumed that Beams
        have not been set and/or makeBeams has not been run. If any Beams
        exist, this method returns True, regardless of if makeBeams has
        actually been run.
        )ÚNotRestF©ÚclassFilterÚrestoreActiveSitesNT)r   ÚrecurseÚbeamsÚ	beamsList)r   Úns     r   ÚhaveBeamsBeenMadezStreamStatus.haveBeamsBeenMadem   sH   € ð ”×$Ò$°ÐRWÐ$ÑXÔXð 	ð 	ˆAØŒwÐ" q¤wÔ'8Ð"Ø�t�tøØˆur   c                ó    — d}| j                              dd¬¦  «        D ]*}|j        j        rd}|j        j        d         j        � dS Œ+|rdS dS )aë  
        If any GeneralNote in this Stream is a tuplet, then check to
        see if any of them have a first Tuplet with type besides None
        return True. Otherwise, return False if there is a tuplet. Return None if
        no Tuplets.

        >>> s = stream.Stream()
        >>> s.streamStatus.haveTupletBracketsBeenMade() is None
        True
        >>> s.append(note.Note())
        >>> s.streamStatus.haveTupletBracketsBeenMade() is None
        True
        >>> nTuplet = note.Note(quarterLength=1/3)
        >>> s.append(nTuplet)
        >>> s.streamStatus.haveTupletBracketsBeenMade()
        False
        >>> nTuplet.duration.tuplets[0].type = 'start'
        >>> s.streamStatus.haveTupletBracketsBeenMade()
        True

        FÚGeneralNoter(   Tr   N)r   r+   ÚdurationÚtupletsÚtype)r   ÚfoundTupletr.   s      r   ÚhaveTupletBracketsBeenMadez'StreamStatus.haveTupletBracketsBeenMadey   sm   € ð, ˆØ”×$Ò$°ÐSXÐ$ÑYÔYð 	 ð 	 ˆAØŒzÔ!ð  Ø"�Ø”:Ô% aÔ(Ô-Ð9Ø˜4˜4øØð 	Ø�5à�4r   c                óP   — | j         €|                      ¦   «         | _         | j         S r   )r   r%   ©r   s    r   ÚaccidentalszStreamStatus.accidentalsœ   s(   € àÔÐ$Ø $× <Ò <Ñ >Ô >ˆDÔØÔ Ð r   c                óD   — |�t          |¦  «        | _        d S d | _        d S r   )Úboolr   ©r   Úexprs     r   r9   zStreamStatus.accidentals¢   s*   € àÐÝ $ T¡
¤
ˆDÔÐÐà $ˆDÔÐÐr   c                óP   — | j         €|                      ¦   «         | _         | j         S r   )r   r/   r8   s    r   r,   zStreamStatus.beams©   s%   € àŒ;ÐØ×0Ò0Ñ2Ô2ˆDŒKØŒ{Ðr   c                óD   — |�t          |¦  «        | _        d S d | _        d S r   )r;   r   r<   s     r   r,   zStreamStatus.beams¯   s$   € àÐÝ˜t™*œ*ˆDŒKˆKˆKàˆDŒKˆKˆKr   c                ól   — | j         €'|                      ¦   «         | _         | j         €d| _         | j         S )NT)r   r6   r8   s    r   r3   zStreamStatus.tuplets¶   s6   € àŒ=Ð Ø ×;Ò;Ñ=Ô=ˆDŒMð Œ}Ð$Ø $�”ØŒ}Ðr   c                óD   — |�t          |¦  «        | _        d S d | _        d S r   )r;   r   r<   s     r   r3   zStreamStatus.tupletsÀ   s$   € àÐÝ  ™JœJˆDŒMˆMˆMà ˆDŒMˆMˆMr   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r   r   r%   r/   r6   Úpropertyr9   Úsetterr,   r3   © r   r   r	   r	      s)  € € € € € ðð ð<€Ið ð ð ð ðHð Hð Hð Hðð ð ð
ð 
ð 
ðð ð ðF ð!ð !ñ „Xð!ð
 Ôð%ð %ñ Ôð%ð ðð ñ „Xðð
 „\ðð ñ „\ðð ðð ñ „Xðð „^ð!ð !ñ „^ð!ð !ð !r   r	   c                  ó   — e Zd ZdZd„ ZdS )ÚTestz;
    Note: most Stream tests are found in stream.tests
    c                ó|  — dd l }ddlm} ddlm} |                     ¦   «         }|                     dd¬¦  «        }|                     |¦  «         |                     dd¬¦  «        }|                     dd¬¦  «        }|                     ||g¦  «         |                     d	d¬¦  «        }|                     d	d¬¦  «        }	|                     ||	g¦  «         |j                             d
¦  «         |j                             d¦  «         |                      |j	         
                    ¦   «         ¦  «         |                     |¦  «        }
|                      |
j	         
                    ¦   «         ¦  «         d|
j	        _        |                     |
¦  «        }|                      |j	        j        ¦  «         d S )Nr   )Ústream)ÚnoteÚC4Úquarter)r4   ÚD4ÚeighthÚE4ÚstartÚstopF)ÚcopyÚmusic21rM   rN   ÚMeasureÚNoteÚappendr,   Ú
assertTrueÚstreamStatusr/   ÚdeepcopyÚassertFalse)r   rV   rM   rN   ÚmÚcÚd1Úd2Úe3Úe4ÚmmÚmmms               r   Ú"testHaveBeamsBeenMadeAfterDeepcopyz'Test.testHaveBeamsBeenMadeAfterDeepcopyÐ   s–  € ØˆˆˆØ"Ð"Ð"Ð"Ð"Ð"Ø Ð Ð Ð Ð Ð Ø�NŠNÑÔˆØ�IŠI�d ˆIÑ+Ô+ˆØ	�Š�‰ŒˆØ�YŠY�t (ˆYÑ+Ô+ˆØ�YŠY�t (ˆYÑ+Ô+ˆØ	�Š�"�b�ÑÔÐØ�YŠY�t (ˆYÑ+Ô+ˆØ�YŠY�t (ˆYÑ+Ô+ˆØ	�Š�"�b�ÑÔÐØ
Œ�Š˜Ñ Ô Ð Ø
Œ�Š˜ÑÔÐØ�Š˜œ×8Ò8Ñ:Ô:Ñ;Ô;Ð;Ø�]Š]˜1ÑÔˆØ�Š˜œ×9Ò9Ñ;Ô;Ñ<Ô<Ð<Ø %ˆŒÔØ�mŠm˜BÑÔˆØ×Ò˜Ô)Ô/Ñ0Ô0Ð0Ð0Ð0r   N)rB   rC   rD   rE   rg   rI   r   r   rK   rK   Ë   s-   € € € € € ðð ð1ð 1ð 1ð 1ð 1r   rK   Ú__main__)Ú
__future__r   ÚunittestrW   r   Úmusic21.common.miscr   Úmusic21.common.objectsr   ÚEnvironmentÚ__file__ÚenvironLocalr	   ÚTestCaserK   rB   ÚmainTestrI   r   r   ú<module>rr      s  ðð #Ð "Ð "Ð "Ð "Ð "à €€€à Ð Ð Ð Ð Ð Ø /Ð /Ð /Ð /Ð /Ð /Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5à&ˆ{Ô& xÑ0Ô0€ðm!ð m!ð m!ð m!ð m!Ð%ñ m!ô m!ð m!ðf1ð 1ð 1ð 1ð 1ˆ8Ôñ 1ô 1ð 1ð@ ˆzÒÐØ€N€N€NØ€GÔ�TÑÔÐÐÐð Ðr   