§
    ƒØjˆ  ã                  ó@  — d dl mZ d dlmZ d dlZd dlmZ d dlmZ d dlmZ g d¢Z	 edej
        fd	ej        fd
ej        fdej        fdej        fdej        fdej        fdej        fdej        fdej        fdej        fdej        fdej        fdej        fdej        fdej        fg¦  «        Z ed„ e                     ¦   «         D ¦   «         ¦  «        Zeej        = eej        = eej
        = d
eej        <   deej
        <    edej        fdej        fdej        fdej         fdej!        fdej"        fdej#        fd ej$        fd!ej%        fd"ej&        fd#ej'        fd$ej(        fd%ej)        fd&ej*        fd'ej+        fd(ej,        fd)ej-        fd*ej.        fd+ej/        fd,ej0        fg¦  «        Z1 ed-„ e1                     ¦   «         D ¦   «         ¦  «        Z2e2ej0        = de2ej3        <   ej4        ej5        ej5        ej6        ej6        ej7        ej8        ej9        ej:        ej;        d.œ
Z< G d/„ d0ej=        ¦  «        Z> G d1„ d2e>¦  «        Z? G d3„ d4e>¦  «        Z@ G d5„ d6eA¦  «        ZBd7ZCd8„ ZDd9„ ZEd:„ ZF ejG        d;¦  «        ZHd<„ ZIeJd=k    rd dlZ ejK        ¦   «          dS dS )>é    )Úannotations)ÚOrderedDictN)Úarticulations)Úexceptions21)Úexpressions)ÚpÚppÚpppÚppppÚpppppÚppppppÚfÚffÚfffÚffffÚfffffÚffffffÚmpÚmfÚsfÚsfpÚsfppÚfpÚrfÚrfzÚsfzÚsffzÚfzÚnÚpfÚsfzpzother-dynamicsÚaccentzstrong-accentÚstaccatoÚstaccatissimoÚspiccatoÚtenutozdetached-legatoÚscoopÚplopÚdoitÚfalloffzbreath-markÚcaesuraÚstressÚunstresszother-articulationc                ó   — g | ]	\  }}||f‘Œ
S © r/   ©Ú.0ÚkÚvs      ú�/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/music21/musicxml/xmlObjects.pyú
<listcomp>r5   2   s    € Ð%TÐ%TÐ%T±°°A q¨! fÐ%TÐ%TÐ%Tó    zup-bowzdown-bowÚharmoniczopen-stringzthumb-positionÚ	fingeringÚpluckzdouble-tongueztriple-tongueÚstoppedzsnap-pizzicatoÚstringÚbendÚtapÚfretÚheelÚtoeÚfingernailsÚhandbellzother-technicalc                ó   — g | ]	\  }}||f‘Œ
S r/   r/   r0   s      r4   r5   r5   T   s    € Ð"NÐ"NÐ"N©d¨a° A q 6Ð"NÐ"NÐ"Nr6   )
z
trill-markÚturnzdelayed-turnzinverted-turnzdelayed-inverted-turnÚshakeÚmordentzinverted-mordentÚ	schleiferzother-ornamentc                  ó*   ‡ — e Zd Zdˆ fd„Zˆ fd„Zˆ xZS )ÚMusicXMLExceptionÚmessageÚstrc                óf   •— t          ¦   «                              |¦  «         d| _        d| _        d S )NÚ )ÚsuperÚ__init__ÚmeasureNumberÚpartName)ÚselfrJ   Ú	__class__s     €r4   rO   zMusicXMLException.__init__l   s.   ø€ Ý‰Œ×Ò˜Ñ!Ô!Ð!Ø"$ˆÔØˆŒˆˆr6   c                ó�   •— t          ¦   «                              ¦   «         }| j        s| j        rd| j        › d| j        › d�|z   }|S )Nz	In part (z), measure (z): )rN   Ú__str__rP   rQ   )rR   ÚmsgrS   s     €r4   rU   zMusicXMLException.__str__q   sT   ø€ Ý‰gŒg�oŠoÑÔˆØÔð 	W ¤ð 	WØP˜dœmÐPÐP¸Ô9KÐPÐPÐPÐSVÑVˆCØˆ
r6   )rJ   rK   )Ú__name__Ú
__module__Ú__qualname__rO   rU   Ú__classcell__)rS   s   @r4   rI   rI   k   sV   ø€ € € € € ð ð  ð  ð  ð  ð  ð
ð ð ð ð ð ð ð ð r6   rI   c                  ó   — e Zd ZdS )ÚMusicXMLExportExceptionN©rW   rX   rY   r/   r6   r4   r\   r\   x   ó   € € € € € Ø€Dr6   r\   c                  ó   — e Zd ZdS )ÚMusicXMLImportExceptionNr]   r/   r6   r4   r`   r`   |   r^   r6   r`   c                  ó   — e Zd ZdS )ÚMusicXMLWarningNr]   r/   r6   r4   rb   rb   €   r^   r6   rb   )ÚhideObjectOnPrintc                ó   — | dv rdS dS )N)ÚyesTTFr/   ©Úvalues    r4   ÚyesNoToBooleanrh   ‰   s   € Ø�ÐÐØˆtàˆur6   c                ó   — | rdS dS )a  
    Convert a True, False bool to 'yes' or 'no'

    >>> musicxml.xmlObjects.booleanToYesNo(True)
    'yes'
    >>> musicxml.xmlObjects.booleanToYesNo(False)
    'no'

    anything that evaluates to True becomes 'yes'

    >>> musicxml.xmlObjects.booleanToYesNo(5)
    'yes'

    re   Únor/   rf   s    r4   ÚbooleanToYesNork   �   s   € ð ð Øˆuàˆtr6   c                ó@   — t          t          | dz  ¦  «        ¦  «        S )zÔ
    Turns a fraction into a string percent

    >>> musicxml.xmlObjects.fractionToPercent(0.25)
    '25'

    Only does whole numbers for now:

    >>> musicxml.xmlObjects.fractionToPercent(0.251)
    '25'

    éd   )rK   Úintrf   s    r4   ÚfractionToPercentro   ¥   s   € õ �s�5˜3‘;ÑÔÑ Ô Ð r6   z^[a-zA-Z_][\w.-]*$c                ót   — t          | t          ¦  «        sdS | sdS t                               | ¦  «        rdS dS )aü  
    Returns True or False if text is a valid xsd:id, that is, an NCName

    From http://www.datypic.com/sc/xsd/t-xsd_NCName.html:

        The type xsd:NCName represents an XML non-colonized name,
        which is simply a name that does not contain colons. An xsd:NCName value must
        start with either a letter or underscore (_) and may contain only letters,
        digits, underscores (_), hyphens (-), and periods (.). This is equivalent
        to the Name type, except that colons are not permitted.

    >>> musicxml.xmlObjects.isValidXSDID('hel_lo')
    True

    Names cannot begin with digits:

    >>> musicxml.xmlObjects.isValidXSDID('4sad')
    False

    Names must be strings:

    >>> musicxml.xmlObjects.isValidXSDID(12345)
    False

    FT)Ú
isinstancerK   Ú_NCNAMEÚmatch)Útexts    r4   ÚisValidXSDIDru   ¸   sF   € õ4 �d�CÑ Ô ð Øˆuàð Øˆuå‡}‚}�TÑÔð Øˆtàˆur6   Ú__main__)LÚ
__future__r   Úcollectionsr   ÚreÚmusic21r   r   r   ÚDYNAMIC_MARKSÚAccentÚStrongAccentÚStaccatoÚStaccatissimoÚSpiccatoÚTenutoÚDetachedLegatoÚScoopÚPlopÚDoitÚFalloffÚ
BreathMarkÚCaesuraÚStressÚUnstressÚArticulationÚARTICULATION_MARKSÚitemsÚARTICULATION_MARKS_REVÚUpBowÚDownBowÚStringHarmonicÚ
OpenStringÚStringThumbPositionÚ	FingeringÚFrettedPluckÚDoubleTongueÚTripleTongueÚStoppedÚSnapPizzicatoÚStringIndicationÚFretBendÚFretTapÚFretIndicationÚ	OrganHeelÚOrganToeÚHarpFingerNailsÚHandbellIndicationÚTechnicalIndicationÚTECHNICAL_MARKSÚTECHNICAL_MARKS_REVÚHarmonicÚTrillÚTurnÚInvertedTurnÚShakeÚMordentÚInvertedMordentÚ	SchleiferÚOrnamentÚORNAMENT_MARKSÚMusic21ExceptionrI   r\   r`   ÚUserWarningrb   ÚSTYLE_ATTRIBUTES_YES_NO_TO_BOOLrh   rk   ro   Úcompilerr   ru   rW   ÚmainTestr/   r6   r4   ú<module>r´      sq  ðð #Ð "Ð "Ð "Ð "Ð "à #Ð #Ð #Ð #Ð #Ð #Ø 	€	€	€	ð "Ð !Ð !Ð !Ð !Ð !Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð ðð ð €ð !�[Ø�Ô$Ð%Ø�}Ô1Ð2Ø�-Ô(Ð)Ø�}Ô2Ð3Ø�-Ô(Ð)Ø�Ô$Ð%Ø˜Ô5Ð6Øˆ}Ô"Ð#ØˆmÔ Ð!ØˆmÔ Ð!Ø�Ô&Ð'Ø�]Ô-Ð.Ø�Ô&Ð'Ø�Ô$Ð%Ø�-Ô(Ð)Ø˜MÔ6Ð7ðñô Ð ð, %˜Ð%TÐ%TÐ9K×9QÒ9QÑ9SÔ9SÐ%TÑ%TÔ%TÑUÔUÐ Ø˜=Ô5Ð6Ø˜=Ô1Ð2Ø˜=Ô/Ð0Ø1;Ð �}Ô-Ñ .Ø/7Ð �}Ô+Ñ ,à�+ ¨-Ô*=Ð>Ø *¨MÔ,AÐBØ *¨MÔ,HÐIØ -¨}Ô/GÐHØ 0°-Ô2SÐTØ +¨]Ô-DÐEØ '¨Ô)CÐDØ /°Ô1KÐLØ /°Ô1KÐLØ )¨=Ô+@ÐAØ 0°-Ô2MÐNØ (¨-Ô*HÐIð
 !'¨Ô(>Ð?Ø % }Ô'<Ð=Ø &¨Ô(DÐEØ &¨Ô(?Ð@Ø % }Ô'=Ð>Ø -¨}Ô/LÐMð !+¨MÔ,LÐMØ 1°=Ô3TÐUð3!ñ "ô "€ð6 "�kÐ"NÐ"N°o×6KÒ6KÑ6MÔ6MÐ"NÑ"NÔ"NÑOÔOÐ à˜Ô9Ð:Ø.8Ð �MÔ*Ñ +ð !,Ô 1Ø%Ô*Ø"-Ô"2Ø#.Ô#;Ø+6Ô+Cà&Ô,Ø(Ô0Ø&1Ô&AØ*Ô4Ø$/Ô$8ðð €ð 
ð 
ð 
ð 
ð 
˜Ô5ñ 
ô 
ð 
ð	ð 	ð 	ð 	ð 	Ð/ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	Ð/ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	�kñ 	ô 	ð 	ð #:Ð ðð ð ðð ð ð*!ð !ð !ð  ˆ"Œ*Ð*Ñ
+Ô
+€ð#ð #ð #ðN ˆzÒÐØ€N€N€NØ€GÔÑÔÐÐÐð Ðr6   