+
    BiN                       ^ RI Ht ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t^ RI
t^ RIt^ RIt^ RIt^ RItR tR t ! R R4      t ! R R	]4      tR
 tR t ! R R4      t ! R R]P.                  4      t ! R R]P.                  4      tR t ! R R4      tR tR t]! ]R4      '       d   ]P>                  ! 4       '       g   R t R t!R t"R t#R t$R t%R t& ! R R 4      t']'R! 4       t(R" t)]! ]PT                  ! R#R$7      4      R% 4       t+R& t,R' t-R( t. ! R) R*]P^                  P`                  4      t1 ! R+ R,4      t2]Pf                  R- 4       t4R. t5R/ t6R0 t7 ]Pp                  ! R14       R2t9]9'       d   R3 t;]! ]Px                  '       * 4      R4 4       t=R5 t>R6 t?R7 t@R8 tAR@R9 ltBR: tCR; tDR< tE]FR=8X  d   ]P                  ! R>R?7       R# R#   ]: d    R#t9 Lki ; i)A    )support)import_helperNc                    a  V 3R  lpV# )c                 R   < S'       d   \         P                  '       d   R V n        V # )z>>> pass  # doctest: +SKIP)r   HAVE_DOCSTRINGS__doc__)func	conditions   &5/usr/lib/python3.14/test/test_doctest/test_doctest.py	decorator"doctest_skip_if.<locals>.decorator   s    0007DL     )r
   r   s   f r   doctest_skip_ifr      s     r   c                     W ,           # Nr   vs   &r   sample_funcr   $   s     3Jr   c                      a  ] tR t^/t o R tR tR tR tR t]	! ]4      tR t
]! ]
4      t
]! ]]RR7      t^*t]P                   R	 4       t ! R
 R4      tRtV tR# )SampleClassc                    Wn         R # r   valselfr   s   &&r   __init__SampleClass.__init__?   	    
 r   c                N    \        V P                  V P                  ,           4      # r   )r   r   r   s   &r   doubleSampleClass.doubleF   s    
 488dhh.//r   c                    V P                   # r   r   r!   s   &r   getSampleClass.getM       
 xxr   c                    Wn         R # r   r   r   s   &&r   setterSampleClass.setterT   s	     r   c                    V ^,           # )   r   r   s   &r   a_staticmethodSampleClass.a_staticmethod]   s    
 s
r   c                    V^,           # )   r   )clsr   s   &&r   a_classmethodSampleClass.a_classmethode   s     s
r   zB
        >>> print(SampleClass(22).a_property)
        22
        )docc                    R # )hellor   r!   s   &r   a_cached_propertySampleClass.a_cached_propertyv   s     r   c                   6   a  ] tR t^~t o RR ltR tR tRtV tR# )SampleClass.NestedClassc                    Wn         R # r   r   r   s   &&r   r    SampleClass.NestedClass.__init__   s	    
 Hr   c                b    \         P                  V P                  V P                  ,          4      # r   )r   NestedClassr   r!   s   &r   squareSampleClass.NestedClass.square   s     **488DHH+<==r   c                    V P                   # r   r   r!   s   &r   r%   SampleClass.NestedClass.get   s    88Or   r   N)r   )	__name__
__module____qualname____firstlineno__r   r?   r%   __static_attributes____classdictcell____classdict__s   @r   r>   r:   ~   s     		>	 	r   r>   r   N)rC   rD   rE   rF   r   r"   r%   r)   r-   staticmethodr2   classmethodproperty
a_propertya_class_attribute	functoolscached_propertyr7   r>   rG   rH   rI   s   @r   r   r   /   sx      0 ".1N  .M#v , J
   r   r   c                   2   a  ] tR t^t o R tR tR tRtV tR# )SampleNewStyleClassc                    Wn         R # r   r   r   s   &&r   r   SampleNewStyleClass.__init__   r   r   c                N    \        V P                  V P                  ,           4      # r   )rS   r   r!   s   &r   r"   SampleNewStyleClass.double   s    
 #488dhh#677r   c                    V P                   # r   r   r!   s   &r   r%   SampleNewStyleClass.get   r'   r   r   N)	rC   rD   rE   rF   r   r"   r%   rG   rH   rI   s   @r   rS   rS      s     8 r   rS   c                      R # r   r   r   r   r   test_Exampler[          Dr   c                      R # r   r   r   r   r   test_DocTestr^   )  r\   r   c                   \   a  ] tR tRt o R t]P                  '       d
   R tRtV t	R# RtV t	R# )test_DocTestFinderi  c                     R # r   r   r   r   r   basicstest_DocTestFinder.basics      $r   c                     R # r   r   r   r   r   non_Python_modules%test_DocTestFinder.non_Python_modules  s    $r   r   N)
rC   rD   rE   rF   rb   intr   rf   rG   rH   rI   s   @r   r`   r`     s&     Xt {{{$	 $	 r   r`   c                   &   a  ] tR tRt o R tRtV tR# )TestDocTesti  c           	        R pR pWn         \        P                  ! 4       P                  V4      ^ ,          p\        P
                  ! 4       ;_uu_ 4        \        P                  ! 4       ;_uu_ 4        \        P                  ! RR7      P                  V4      pRRR4       RRR4       V P                  X\        P                  4       V P                  VP                  ^4       V P                  VP                  ^4       V P                  VP                  ^4       V P                  \        V4      R4       Vw  rEV P                  WE3R4       R#   + '       g   i     L; i  + '       g   i     L; i)z
            >>> 1 + 1
            11
            >>> 2 + 3      # doctest: +SKIP
            "23"
            >>> 5 + 7
            57
        c                      R # r   r   r   r   r   myfunc$TestDocTest.test_run.<locals>.myfunc  s    r   F)verboseN)r0      )r   doctestDocTestFinderfindr   captured_stdoutcaptured_stderrDocTestRunnerrunassertIsInstanceTestResultsassertEqualfailed	attemptedskippedtuple)r   testrm   resultsxys   &     r   test_runTestDocTest.test_run  s   	 $$&++F3A6$$&&((**!//>BB4H + '
 	gw':':;+**A.!,w0!( +* '&s$   E$2'E	E$E!E$$E4	r   N)rC   rD   rE   rF   r   rG   rH   rI   s   @r   rj   rj     s     ) )r   rj   c                   ,   a  ] tR tRt o R tR tRtV tR# )TestDocTestFinderi"  c                    ^ RI Hp \        P                  ! R4      pWP                  R&   \
        P                  ! 4       pV P                  VP                  V4      . 4       R# )r   )calldummyinject_callN)	unittest.mockr   types
ModuleType__dict__rq   rr   rz   rs   )r   r   dummy_modulefinders   &   r   test_issue35753!TestDocTestFinder.test_issue35753$  sL     	'''0/3m,&&(\2B7r   c           	     2   R p\         P                  ! 4       ;_uu_ 4       p\        P                  P	                  W!4      p\        P
                  ! V4       \        P                  P                  V4        \        P                  ! V4      p\        P                  ! V4       \        P                  P                  4        \        P                  ! RR7      p\        P                  ! RR7      pV P                  \!        VP#                  V4      4      ^4       V P                  \!        VP#                  V4      4      ^ 4       RRR4       R#   \        P                  ! T4       \        P                  P                  4        i ; i  + '       g   i     R# ; i)doctest_empty_pkgF)exclude_emptyTN)tempfileTemporaryDirectoryospathjoinmkdirsysappend	importlibimport_moduler   forgetpoprq   rr   rz   lenrs   )r   pkg_name
parent_dirpkg_dirmodinclude_empty_finderexclude_empty_finders   &      r   test_empty_namespace_package.TestDocTestFinder.test_empty_namespace_package.  s   &((**jggll:8GHHWHHOOJ'--h7$$X.#*#8#8u#M #*#8#8t#L S!5!:!:3!?@!DS!5!:!:3!?@!D +* $$X. +**s%   AF6EB6F6FFF	r   N)rC   rD   rE   rF   r   r   rG   rH   rI   s   @r   r   r   "  s     8E Er   r   c                      R # r   r   r   r   r   test_DocTestParserr   @  s    $r   c                   D   a  ] tR tRt o R tR tR tR tR tR t	Rt
V tR	# )
test_DocTestRunneriw  c                     R # r   r   r   r   r   rb   test_DocTestRunner.basicsx  rd   r   c                     R # r   r   r   r   r   verbose_flagtest_DocTestRunner.verbose_flag      r   c                     R # r   r   r   r   r   
exceptionstest_DocTestRunner.exceptions  s    dr   c                     R # r   r   r   r   r   displayhooktest_DocTestRunner.displayhook      tr   c                     R # r   r   r   r   r   optionflagstest_DocTestRunner.optionflags  r   r   c                     R # r   r   r   r   r   option_directives$test_DocTestRunner.option_directives  s    Tr   r   N)rC   rD   rE   rF   rb   r   r   r   r   r   rG   rH   rI   s   @r   r   r   w  s2     BFBFsh:tl\ \r   r   c                      R # r   r   r   r   r   test_testsourcer     r   r   c                      R # r   r   r   r   r   
test_debugr     rd   r   gettracec                      R # r   r   r   r   r   test_pdb_set_tracer         r   c                      R # r   r   r   r   r   test_pdb_set_trace_nestedr   z  r   r   c                      R # r   r   r   r   r   test_DocTestSuiter         r   c                      R # r   r   r   r   r   test_DocTestSuite_errorsr   d	  r   r   c                      R # r   r   r   r   r   test_DocFileSuiter   	  r   r   c                      R # r   r   r   r   r   test_DocFileSuite_errorsr   
  r   r   c                      R # r   r   r   r   r   test_trailing_space_in_testr   
  r   r   c                   ,   a  ] tR tRt o R tR tRtV tR# )Wrapperi
  c                >    Wn         \        P                  ! W4       R # r   )r	   rP   update_wrapper)r   r	   s   &&r   r   Wrapper.__init__
  s    	  ,r   c                *    V P                   ! V/ VB  R # r   r	   )r   argskwargss   &*,r   __call__Wrapper.__call__
  s    		4"6"r   r   N)rC   rD   rE   rF   r   r   rG   rH   rI   s   @r   r   r   
  s     -# #r   r   c                      R # r   r   r   r   r   wrappedr   
      r   c                      R # r   r   r   r   r   test_look_in_unwrappedr   
  r   r   F)cpythonc                      R # r   r   r   r   r   test_wrapped_c_funcr   
  r   r   c                      R # r   r   r   r   r   test_unittest_reportflagsr   
  r   r   c                      R # r   r   r   r   r   test_testfiler   C  s    Tr   c                      R # r   r   r   r   r   test_testfile_errorsr     s    Dr   c                   <   a  ] tR tRt o RR ltR tR tR tRtV t	R# )	TestImporteri+  Nc                D    \         P                  P                  WV R 7      # ))loader)r   utilspec_from_file_location)r   fullnamer   targets   &&&&r   	find_specTestImporter.find_spec-  s    ~~55hT5RRr   c                    \        VR R7      ;_uu_ 4       pVP                  4       uuRRR4       #   + '       g   i     R# ; i)rb)modeN)openread)r   r   fs   && r   get_dataTestImporter.get_data0  s)    $T""a668 #"""s	   1A	c                    \         hr   )ImportError)r   modules   &&r   exec_moduleTestImporter.exec_module4  s    r   c                    R # r   r   )r   specs   &&r   create_moduleTestImporter.create_module7  s    r   r   r   )
rC   rD   rE   rF   r   r   r  r	  rG   rH   rI   s   @r   r   r   +  s     S r   r   c                   ,   a  ] tR tRt o R tR tRtV tR# )TestHooki:  c                   \         P                  R ,          V n        \         P                  R ,          V n        \         P                  R ,          V n        \         P                  P                  V4       \         P                  P                  4        \         P                  P                  4       V n
        \        4       V n        \         P                  P                  V P                  4       R# :NNNN)r   r   sys_path	meta_path
path_hooksr   path_importer_cacheclearmodulescopymodules_beforer   importer)r   pathdirs   &&r   r   TestHook.__init__<  s    q)..+ %%'!kk..0$T]]+r   c                ~   V P                   \        P                  R &   V P                  \        P                  R &   V P                  \        P                  R &   \        P
                  P                  4        \        P                  P                  4        \        P                  P                  V P                  4       R# r  )
r  r   r   r  r  r  r  r  updater  r!   s   &r   removeTestHook.removeF  sq    mm>>a OOq%%'4../r   )r  r  r  r  r  N)rC   rD   rE   rF   r   r  rG   rH   rI   s   @r   r  r  :  s     ,0 0r   r  c              #   x   "   \        V 4      p Vx  VP                  4        R #   TP                  4        i ; i5ir   )r  r  )r  hooks   & r   	test_hookr   O  s+     GD
s   :% :7:c                      R # r   r   r   r   r   test_lineendingsr"  X  r   r   c                      R # r   r   r   r   r   test_testmodr$    r\   r   c                      R # r   r   r   r   r   test_testmod_errorsr&    s    4r   u   foo-bär@baz.pyTc                      R # r   r   r   r   r   test_unicoder(    r   r   c                      R # r   r   r   r   r   test_CLIr*  =  s    r   c                      R# )a0  
    *NOTE*: These doctest are not placed in raw string to depict the trailing whitespace
    using ` `

    >>> test = doctest.DocTestFinder().find(f)[0]
    >>> flags = doctest.REPORT_NDIFF
    >>> doctest.DocTestRunner(verbose=False, optionflags=flags).run(test)
    ... # doctest: +ELLIPSIS
    **********************************************************************
    File ..., line 3, in f
    Failed example:
        print('
'.join(['a    ', 'b']))
    Differences (ndiff with -expected +actual):
        - a
        + a
          b
    TestResults(failed=1, attempted=1)

    *NOTE*: ` ` is for checking the trailing whitespace on the +a line above.
    We cannot use actual spaces there, as a commit hook prevents from committing
    patches that contain trailing whitespace. More info on Issue 24746.
    Nr   r   r   r   %test_no_trailing_whitespace_strippingr,  $  s    $r   c                      R # r   r   r   r   r   $test_run_doctestsuite_multiple_timesr.  N  r   r   c                 >    \        R 4      pVP                  V 4       Vh)Text
ValueErroradd_note)noteexcs   & r   test_exception_with_noter6  ^  s     t V
CLL
Ir   c                  `    \        R 4      p V P                  R4       V P                  R4       V h)r0  OneTwor1  )r5  s    r   "test_exception_with_multiple_notesr:    s+     V
CLLLL
Ir   c                 Z    V ! R R4      pTP                  V'       d	   R4       VhR4       Vh)error	Note
LineNote)zx.py   Nz
bad syntax)r3  )r1   	multiliner5  s   && r   test_syntax_error_with_noterA    s2    D g7
8CLL7
I 177
Ir   c                  D    ^ RI Hp  V ! R4      pVP                  R4       Vh)r   )
ParseErrorzerror
errorr=  )xml.etree.ElementTreerC  r3  )rC  r5  s     r   &test_syntax_error_subclass_from_stdlibrE    s"     1
^
$CLL
Ir   c                      R # r   r   r   r   r   .test_syntax_error_with_incorrect_expected_noterG    r   r   c                     VP                  \        P                  ! \        4      4       VP                  \        P                  ! 4       4       V# r   )addTestrq   DocTestSuite)r   testspatterns   &&&r   
load_testsrM    s3    	MM'&&w/0	MM'&&()Lr   __main__ztest.test_doctest.test_doctest)r  )F)Hr   r   test.supportr   rq   rP   r   r   r   importlib.abcimportlib.utilunittestr   r   
contextlibr   r   r   objectrS   r[   r^   r`   TestCaserj   r   r   r   r   r   hasattrr   r   r   r   r   r   r   r   r   r   r   check_impl_detailr   r   r   r   abcMetaPathFinderr   r  contextmanagerr   r"  r$  r&  fsencodesupports_unicodeUnicodeEncodeErrorr(  has_subprocess_supportr*  r,  r.  r6  r:  rA  rE  rG  rM  rC   mainr   r   r   <module>r`     sI  
  &   	 
        	_ _B& @wrTl@ @F
)(## )@E)) E<5nj jX!&P> sJs||~~M^YvM^vpaF5n# # 	 	 **59: ;Tlsj1f9==// 0 0*  HT	fPKK!"
 @ W3334d 5dL'T <~$N$$N zMM9: u  s   G 	GG