
    3j                        d dl mZ d dlZd dlZd dlmZ d dlmZ d dlZ	 d dl	m
Z
 d dlZd dlmZmZ  ej                   d	
      dd       ZddZy# e$ r  G d d      Z
Y <w xY w)    )annotationsN)Any)TestCase)DoctestItemc                      e Zd Zy)r   N)__name__
__module____qualname__     G/DATA/.local/lib/python3.12/site-packages/music21/test/pytest_plugin.pyr   r      s    r   r   )fix312OrderedDictstripAddressessession)scopec                     i } t        t        t        dg             }|D ]  }t        t        |      | |<    t        | d<   | S )N__all__music21)listgetattrr   )ns	all_namesnames      r   doctest_namespacer      sD    BB ?@I7D)4  ByMIr   c                ~   t        j                         dk(  }t        j                  dk\  }g }|D ]v  }t	        |dd      }t	        |dd      }| t        |t              r|j                  dk7  r?t	        |dd      r|j                  j                  dk(  rf|j                  |       x ||dd |D ]  }t        |t              s|j                  }|j                  D ]^  }	t        |	j                  d	      |	_        |rt!        |	j                  d
      |	_        |s>|	j                  j#                  dd      |	_        `  y)z
    Apply music21-style doctest normalizations to pytest-collected doctests.

    This mutates each doctest Example.want in-place, like fixDoctests() does
    for doctest.DocTestSuite.
    Windows)      parentNclsTestdtestz$music21.common.decorators.deprecatedz0x...z...	PosixPathWindowsPath)platformsystemsysversion_infor   
issubclassr   r   r"   r   append
isinstancer   examplesr   wantr   replace)
configitemswindowsis_python312keptitemr   r    dtexamples
             r   pytest_collection_modifyitemsr7      s    OO%2G))W4LDx.feT*?z#x8S\\V=SD'4(JJOO'MM D  E!H$,ZZ {{G)',,@GL0uE&||33KO # r   )returnzdict[str, Any])r8   None)
__future__r   r%   r'   typingr   unittestr   pytest_pytest.doctestr   ImportErrorr   music21.test.testRunnerr   r   fixturer   r7   r   r   r   <module>rB      se    "  
   +
  Ei 	 !	*P'   s   A A#"A#