
    @gQ                     F    d dl Z ddlmZmZ  G d de j                        Zy)    N   )MemorySetupTraversablec                       e Zd Zd Zy)#TestMemoryTraversableImplementationc                 t   t         j                  j                         D ch c]$  \  }}t        |      r|t         j                  vr|& }}}t
        j                  j                  j                         D ch c]#  \  }}t        |      r|j                  d      s|% }}}||z  }|rJ yc c}}w c c}}w )a=  `MemoryTraversable` must not override `Traversable` concrete methods.

        This test is not an attempt to enforce a particular `Traversable` protocol;
        it merely catches changes in the `Traversable` abstract/concrete methods
        that have not been mirrored in the `MemoryTraversable` subclass.
        __N)r   __dict__itemscallable__abstractmethods__r   MemoryTraversable
startswith)selfmethodvaluetraversable_concrete_methods#memory_traversable_concrete_methodsoverridden_methodss         X/var/www/openai/venv/lib/python3.12/site-packages/importlib_resources/tests/test_util.py(test_concrete_methods_are_not_overriddenzLTestMemoryTraversableImplementation.test_concrete_methods_are_not_overridden   s     "-!5!5!;!;!=(
!=61P1P#P != 	% (
 "-!>!>!G!G!M!M!O/
!Ov'8'8'> !O 	, /
 02NN 	 &%%%(

/
s   )B.9(B4N)__name__
__module____qualname__r        r   r   r      s    &r   r   )unittestutilr   r   TestCaser   r   r   r   <module>r       s     *&(*;*; &r   