
    2iQ                     F    S SK r SSKJrJr   " S S\ R                  5      rg)    N   )MemorySetupTraversablec                       \ rS rSrS rSrg)#TestMemoryTraversableImplementation   c                    [         R                  R                  5        VVs1 s H/  u  p[        U5      (       d  M  U[         R                  ;  d  M-  UiM1     nnn[
        R                  R                  R                  5        VVs1 s H1  u  p[        U5      (       d  M  UR                  S5      (       a  M/  UiM3     nnnXC-  nU(       a   egs  snnf s  snnf )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         ]/home/james-whalen/.local/lib/python3.13/site-packages/importlib_resources/tests/test_util.py(test_concrete_methods_are_not_overriddenLTestMemoryTraversableImplementation.test_concrete_methods_are_not_overridden   s     "-!5!5!;!;!=(
!= #)1P1P#P != 	% (
 "-!>!>!G!G!M!M!O/
!O '-'8'8'> !O 	, /
 0N 	 &%%%(

/
s"   CCCC C8C N)__name__
__module____qualname____firstlineno__r   __static_attributes__r       r   r   r      s    &r    r   )unittestutilr   r   TestCaser   r   r    r   <module>r$      s     *&(*;*; &r    