7Ny;SSKJr SSKJrJr SSKJr SSKJrJ r J r SSK J r SSK Jr SSKrSSKrSSKrSSKrSSK r \R("S5 \R*"S5 SSKrSS KJrJrJrJr SS KJrJrJr SS KJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r' SSK(r(SS K)J*r* SS K+J,r,J-r- SSK.J/r/J0r0 SSK1J2r2J3r3 SSK4J5r5J6r6 SSK7J8r8 SSK9J:r:J;r; SSS5 SSS.SjrSr?"SS\5r@"SS\5rA"S S!\5rB"S"S#\5rC"S$S%5rD"S&S'5rE"S(S)\5rF"S*S+\5rG"S,S-\5rHSSKIrJ\ R"\JSLS.5"S/S0\ R55rM"S1S2\ R5rNSSKOrO\ R"\OSLS35"S4S5\ R55rP"S6S7\ R5rQ"S8S9\ R5rR"S:S;\ R5rS\TS<:Xa\ R"5 gg!,(df  GNX=f!\Ka SrJNf=f!\Ka SrONf=f)=)partial)support test_tools) os_helper)TESTFNunlinkrmtreededent)TestCaseNclinic) ClinicError unspecifiedNULLfail) int_converter str_converterself_converter)ModuleClassFunction FunctionKind Parameterpermute_optional_groupspermute_right_option_groupspermute_left_option_groups) CLanguage) converterslegacy_converters)return_convertersint_return_converter)Block BlockParser) BlockPrinter Destination) DSLParser) parse_fileClinic clinic_testsFfilename limited_capicR[U5n[X US9n[SU5UlU$)Nr*)rr(r# block_parser)r+r,clangcs 7/opt/alt/python313/lib64/python3.13/test/test_clinic.py _make_clinicr3$s+ h EulCA U+AN HTr+linenostripc[U5nU(aUR5n[R"U5nUR [ U5nU"U5 SSS5 Ub&UR WRRU5 Ub&UR WRRU5 WR$!,(df  Nl=f)aHelper for the parser tests. tc: unittest.TestCase; passed self in the wrapper parser: the clinic parser used for this test case code: a str with input text (clinic code) errmsg: the expected error message filename: str, optional filename lineno: int, optional line number N) r r7reescapeassertRaisesRegexr assertEqual exceptionr+r6)tcparsercodeerrmsgr+r6r7cms r2_expect_failurerC+s $> C cJUR"5 UR"U5 gN)clearupdate)rold_converterss r2 restore_dictrICsn%r4cUR[[[R"55 UR[[[R"55 UR[[ [ R"55 grE) addCleanuprIrcopyrr )testcases r2save_restore_convertersrNHs\  j")+  &7)..02  &7)..02r4c6\rSrSrSrSSS.SjrSrSrSrSr S r S r S r S r S rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr S r!S!r"S"r#S#r$S$r%S%r&S&r'S'r(S(r)S)r*S*r+S+r,S,r-S-r.S.r/S/r0S0r1S1r2S2r3g)3ClinicWholeFileTestQNr+r6c B[XRRXX4S9 g)NrR)rCr parse)selfrawrAr+r6s r2expect_failure"ClinicWholeFileTest.expect_failureTskk//!) :r4c6[U5 [SS9Ulg)Ntest.cr+)rNr3r rUs r2setUpClinicWholeFileTest.setUpXs%"H5 r4cSnURRU5R5nUSR5nUR US5 UR US5 g)Nz/*[clinic] foo [clinic]*/z[clinic]*/[clinic]*/z [clinic]*/)r rT splitlinesrstripassertNotEqualr<)rUrVcookedend_lines r2test_eolClinicWholeFileTest.test_eol\s[,""3'224!9##% H&<= <0r4c.SnSnURXSSS9 g)Nz /*[clinic input] [clinic start generated code]*/ /*[clinic end generated code: foo]*/ zKMangled Argument Clinic marker line: '/*[clinic end generated code: foo]*/'rZrRrWrUrVerrs r2test_mangled_marker_line,ClinicWholeFileTest.test_mangled_marker_linems*   5  CxBr4c.SnSnURXSSS9 g)Nz /*[clinic input] [clinic start generated code]*/ /*[clinic end generated code: output=0123456789abcdef input=fedcba9876543210]*/ zKChecksum mismatch! Expected '0123456789abcdef', computed 'da39a3ee5e6b4b0d'rZrirRrjrks r2test_checksum_mismatch*ClinicWholeFileTest.test_checksum_mismatchys&  J CxBr4c.SnSnURXSSS9 g)Nz_ /*[clinic input] [clinic start generated code]*/foobarfoobar! z(Garbage after stop line: 'foobarfoobar!'rZr`rRrjrks r2test_garbage_after_stop_line0ClinicWholeFileTest.test_garbage_after_stop_lines% 9 CxBr4c.SnSnURXSSS9 g)NzS /*[clinic input] [clinic start generated code]*/ zRWhitespace is not allowed before the stop line: ' [clinic start generated code]*/'rZr`rRrjrks r2 test_whitespace_before_stop_line4ClinicWholeFileTest.test_whitespace_before_stop_lines*   1  CxBr4c[S5nSUlSUlSUl[ USSS9n[ S5R 5nURU5n[ S5R5nURXE5 g) Nz//z//[{dsl_name} start]z//[{dsl_name} stop]rZFr*z\ //[clinic start] //module test //[clinic stop] z //[clinic start] //module test // //[clinic stop] /*[clinic end generated code: output=da39a3ee5e6b4b0d input=65fab8adff58cf08]*/ ) r body_prefix start_line stop_liner(r r7rTlstripr<)rUr0clrVoutexpecteds r2test_parse_with_body_prefix/ClinicWholeFileTest.test_parse_with_body_prefixs$ 1/ EH5 A  UW hhsm  VX  'r4c.SnSnURXSSS9 g)NzR /* start /* nested */ */ zNested block comment!rZr`rRrjrks r2*test_cpp_monitor_fail_nested_block_comment>ClinicWholeFileTest.test_cpp_monitor_fail_nested_block_comments%  & CxBr4c.SnSnURXSSS9 g)Nz< #if a() #endif z)Invalid format for #if line: no argument!rZrRrjrks r2*test_cpp_monitor_fail_invalid_format_noarg>ClinicWholeFileTest.test_cpp_monitor_fail_invalid_format_noargs%  : CxBr4c.SnSnURXSSS9 g)NzC #ifdef A B a() #endif z?Invalid format for #ifdef line: should be exactly one argument!rZrrRrjrks r20test_cpp_monitor_fail_invalid_format_toomanyargsDClinicWholeFileTest.test_cpp_monitor_fail_invalid_format_toomanyargss&  P CxBr4c.SnSnURXSSS9 g)Nz#elsez.#else without matching #if / #ifdef / #ifndef!rZrrRrjrks r2$test_cpp_monitor_fail_no_matching_if8ClinicWholeFileTest.test_cpp_monitor_fail_no_matching_ifs!> CxBr4c.SnSnURX5 g)Nzy /*[clinic input] output preset nosuchpreset [clinic start generated code]*/ zUnknown preset 'nosuchpreset'rjrks r2$test_directive_output_unknown_preset8ClinicWholeFileTest.test_directive_output_unknown_presets  . C%r4c.SnSnURX5 g)Nzi /*[clinic input] output pop [clinic start generated code]*/ z"Can't 'output pop', stack is emptyrjrks r2test_directive_output_cant_pop2ClinicWholeFileTest.test_directive_output_cant_pops  3 C%r4c[S5nURRU5nURUR [S555 1SknUH,nUR US9 UR XB5 SSS5 M. UR5RS5SnURUR S55 g!,(df  M=f)Nz~ /*[clinic input] output print 'I told you once.' [clinic start generated code]*/ > cpp_if cpp_endifimpl_prototypeimpl_definitionmethoddef_definemethoddef_ifndefparser_prototypeparser_definitiondocstring_prototypedocstring_definition)field z%/*[clinic end generated code: output=) r r rT assertTrue startswithsubTestassertInrbsplit)rUrVr~fieldsr last_lines r2test_directive_output_print/ClinicWholeFileTest.test_directive_output_prints   kk$ v/ (    EE* e)+*JJL&&t,R0    !H I +*s (C  C c@[S5nSnURX5 g)Nz /*[clinic input] preserve foo bar baz eggs spam ham mushrooms [clinic start generated code]*/ z,takes 1 positional argument but 8 were given)r rWrks r2test_directive_wrong_arg_number3ClinicWholeFileTest.test_directive_wrong_arg_numbers&   = C%r4c.SnSnURX5 g)Nz /*[clinic input] destination buffer nosuchcommand [clinic start generated code]*/ z+unknown destination command 'nosuchcommand'rjrks r2 test_unknown_destination_command4ClinicWholeFileTest.test_unknown_destination_command s  < C%r4c.SnSnURX5 g)Na /*[python input] class Custom_converter(CConverter): converter = "some_c_function" def converter_init(self): self.function.noaccess [python start generated code]*/ /*[clinic input] module test test.fn a: Custom [clinic start generated code]*/ z Custom [clinic start generated code]*/ rrjrs r2#test_badly_formed_return_annotation7ClinicWholeFileTest.test_badly_formed_return_annotation6s#;   Eq1r4c,SnSnURX!SS9 g)N''my_test_func' uses '*' more than once.z /*[clinic input] my_test_func pos_arg: object *args: object * kw_arg: object [clinic start generated code]*/ rrjrs r2test_star_after_vararg*ClinicWholeFileTest.test_star_after_varargE#7   Eq1r4c,SnSnURX!SS9 g)Nrz /*[clinic input] my_test_func pos_arg: object * *args: object kw_arg: object [clinic start generated code]*/ rrrjrs r2test_vararg_after_star*ClinicWholeFileTest.test_vararg_after_starSrr4c,SnSnURX!SS9 g)NzAlready defined module 'm'!z| /*[clinic input] module m module m [clinic start generated code]*/ rirrjrs r2test_module_already_got_one/ClinicWholeFileTest.test_module_already_got_oneas#+  Eq1r4c,SnSnURX!SS9 g)Nz"Destination already exists: 'test'z /*[clinic input] destination test new buffer destination test new buffer [clinic start generated code]*/ rirrjrs r2 test_destination_already_got_one4ClinicWholeFileTest.test_destination_already_got_oneks#2  Eq1r4c,SnSnURX!SS9 g)Nz'Destination does not exist: '/dev/null'zz /*[clinic input] output everything /dev/null [clinic start generated code]*/ r`rrjrs r2test_destination_does_not_exist3ClinicWholeFileTest.test_destination_does_not_existus#7  Eq1r4c,SnSnURX!SS9 g)NzAlready defined class 'C'!z /*[clinic input] class C "" "" class C "" "" [clinic start generated code]*/ rirrjrs r2test_class_already_got_one.ClinicWholeFileTest.test_class_already_got_one~s#*  Eq1r4c,SnSnURX!SS9 g)Nz#Can't nest a module inside a class!z /*[clinic input] class C "" "" module C.m [clinic start generated code]*/ rirrjrs r2"test_cant_nest_module_inside_class6ClinicWholeFileTest.test_cant_nest_module_inside_classs#3  Eq1r4c,Sn[S5n[S5n[R"5nURR U5nSSS5 UR UWR 55 URWU5 g!,(df  NA=f)Nz?Destination buffer 'buffer' not empty at end of file, emptying.a  /*[clinic input] output everything buffer fn a: object / [clinic start generated code]*/ /*[clinic end generated code: output=da39a3ee5e6b4b0d input=1c4668687f5fd002]*/ /*[clinic input] dump buffer [clinic start generated code]*/ PyDoc_VAR(fn__doc__); PyDoc_STRVAR(fn__doc__, "fn($module, a, /)\n" "--\n" "\n"); #define FN_METHODDEF \ {"fn", (PyCFunction)fn, METH_O, fn__doc__}, static PyObject * fn(PyObject *module, PyObject *a) /*[clinic end generated code: output=be6798b148ab4e53 input=524ce2e021e4eba6]*/ z /*[clinic input] output everything buffer fn a: object / [clinic start generated code]*/ )r rcaptured_stdoutr rTrgetvaluer<)rUexpected_warningexpected_generatedrstdout generateds r2!test_dest_buffer_not_empty_at_eof5ClinicWholeFileTest.test_dest_buffer_not_empty_at_eofs5#%  6   $ $ && ))%0I' &(9: $67' &s B Bc,SnSnURX!SS9 g)Nz9Can't clear destination 'file': it's not of type 'buffer'zu /*[clinic input] destination file clear [clinic start generated code]*/ r`rrjrs r2test_dest_clear#ClinicWholeFileTest.test_dest_clears#I  Eq1r4c,SnSnURX!SS9 g)Nzunknown variable 'ets'zj /*[clinic input] set ets tse [clinic start generated code]*/ r`rrjrs r2test_directive_set_misuse-ClinicWholeFileTest.test_directive_set_misuses#&  Eq1r4cv[S5nURRU5nSnURX25 g)Na /*[clinic input] set line_prefix '// ' output everything suppress output docstring_prototype buffer fn a: object / [clinic start generated code]*/ /* We need to dump the buffer. * If not, Argument Clinic will emit a warning */ /*[clinic input] dump buffer [clinic start generated code]*/ z// PyDoc_VAR(fn__doc__);r r rTrrUrrexpected_docstring_prototypes r2test_directive_set_prefix-ClinicWholeFileTest.test_directive_set_prefixs:  KK%%e, 'A$ 2>r4cv[S5nURRU5nSnURX25 g)Na /*[clinic input] set line_suffix ' // test' output everything suppress output docstring_prototype buffer fn a: object / [clinic start generated code]*/ /* We need to dump the buffer. * If not, Argument Clinic will emit a warning */ /*[clinic input] dump buffer [clinic start generated code]*/ zPyDoc_VAR(fn__doc__); // testrrs r2test_directive_set_suffix-ClinicWholeFileTest.test_directive_set_suffixs:  KK%%e, 'G$ 2>r4cv[S5nURRU5nSnURX25 g)Na /*[clinic input] set line_prefix '{block comment start} ' set line_suffix ' {block comment end}' output everything suppress output docstring_prototype buffer fn a: object / [clinic start generated code]*/ /* We need to dump the buffer. * If not, Argument Clinic will emit a warning */ /*[clinic input] dump buffer [clinic start generated code]*/ z/* PyDoc_VAR(fn__doc__); */rrs r2$test_directive_set_prefix_and_suffix8ClinicWholeFileTest.test_directive_set_prefix_and_suffixs:   KK%%e, 'D$ 2>r4c[S5n[S5nURRU5nURX25 g)Nz /*[clinic input] output everything buffer printout test [clinic start generated code]*/ z /*[clinic input] output everything buffer printout test [clinic start generated code]*/ test /*[clinic end generated code: output=4e1243bd22c66e76 input=898f1a32965d44ca]*/ r r rTr<)rUrrrs r2test_directive_printout+ClinicWholeFileTest.test_directive_printout sF     KK%%e,  -r4c,SnSnURX!SS9 g)Nz)Can't have 'preserve' twice in one block!z| /*[clinic input] preserve preserve [clinic start generated code]*/ rirrjrs r2test_directive_preserve_twice1ClinicWholeFileTest.test_directive_preserve_twices#9  Eq1r4c,SnSnURX!SS9 g)Nz?'preserve' only works for blocks that don't produce any output!z /*[clinic input] preserve fn a: object / [clinic start generated code]*/ rrrjrs r2test_directive_preserve_input1ClinicWholeFileTest.test_directive_preserve_input(s#O  Eq1r4cr[S5nURRU5nURX!5 g)Na /*[clinic input] output everything buffer preserve [clinic start generated code]*/ // Preserve this /*[clinic end generated code: output=eaa49677ae4c1f7d input=559b5db18fddae6a]*/ /*[clinic input] dump buffer [clinic start generated code]*/ /*[clinic end generated code: output=da39a3ee5e6b4b0d input=524ce2e021e4eba6]*/ rrUrrs r2test_directive_preserve_output2ClinicWholeFileTest.test_directive_preserve_output4s5   KK%%e,  *r4cZ[S5R5nSnURX!SS9 g)Na Invalid command or destination name 'cmd'. Must be one of: - 'preset' - 'push' - 'pop' - 'print' - 'everything' - 'cpp_if' - 'docstring_prototype' - 'docstring_definition' - 'methoddef_define' - 'impl_prototype' - 'parser_prototype' - 'parser_definition' - 'cpp_endif' - 'methoddef_ifndef' - 'impl_definition' zp /*[clinic input] output cmd buffer [clinic start generated code]*/ r`r)r r7rWrs r2%test_directive_output_invalid_command9ClinicWholeFileTest.test_directive_output_invalid_commandDs9  "UW# $  Eq1r4c,SnSnURXSS9 g)Na /*[clinic input] class C "void *" "" C.meth a: int [clinic start generated code]*/ /*[clinic input] @classmethod C.__init__ = C.meth [clinic start generated code]*/ zD'__init__' must be a normal method; got 'FunctionKind.CLASS_METHOD'!rrrjrUrrls r2test_validate_cloned_init-ClinicWholeFileTest.test_validate_cloned_init^s$  U Eq1r4c,SnSnURXSS9 g)Na /*[clinic input] class C "void *" "" C.meth a: int [clinic start generated code]*/ /*[clinic input] C.__new__ = C.meth [clinic start generated code]*/ z '__new__' must be a class methodrrjrs r2test_validate_cloned_new,ClinicWholeFileTest.test_validate_cloned_newms#  1 Eq1r4c,SnSnURXSS9 g)Nz /*[clinic input] foo2 [clinic start generated code]*/ /*[clinic input] foo as = foo2 [clinic start generated code]*/ )No C basename provided after 'as' keywordrrjrs r2test_no_c_basename_cloned-ClinicWholeFileTest.test_no_c_basename_cloned{s# : Eq1r4c.[S5nURRU5 URRnUR [ U5S5 UR USR S5 UR USRS5 g)Na9 /*[clinic input] # Make sure we don't create spurious clinic/ directories. output everything suppress foo2 [clinic start generated code]*/ /*[clinic input] foo as foo1 = foo2 [clinic start generated code]*/ r`rfoofoo1)r r rT functionsr<lenname c_basename)rUrVfuncss r2"test_cloned_with_custom_c_basename6ClinicWholeFileTest.test_cloned_with_custom_c_basenamesz    # %% UQ' q. q,,f5r4c,SnSnURXSS9 g)Nz /*[clinic input] class C "void *" "" foo1 [clinic start generated code]*/ /*[clinic input] foo2 as .illegal. = foo1 [clinic start generated code]*/ zIllegal C basename: '.illegal.'r rrjrs r2#test_cloned_with_illegal_c_basename7ClinicWholeFileTest.test_cloned_with_illegal_c_basenames#  0 Eq1r4c:[S5nURRU5 UR[S5 URR nUR [U5S5 USRRS5nUSRRS5nUR USS5 UR USS5 URS U5 URS U5 URS U5 URS U5 g) Nar /*[clinic input] @text_signature "($module, a[, b])" src a: object param a b: object = NULL / docstring [clinic start generated code]*/ /*[clinic input] dst = src [clinic start generated code]*/ r r`rrrzsrc($module, a[, b])zdst($module, a[, b])z param a docstring) r r rTrKr rr<rrrr assertNotIn)rUrrsrc_docstring_linesdst_docstring_liness r2!test_cloned_forced_text_signature5ClinicWholeFileTest.test_cloned_forced_text_signatures   %  ) %% UQ'#Ah0066t<#Ah0066t< ,Q/1GH ,Q/1GH m%89 m%89 k#67 &9:r4c,SnSnURXSS9 g)Nax /*[clinic input] @text_signature "($module, a[, b])" src a: object b: object = NULL / [clinic start generated code]*/ /*[clinic input] @text_signature "($module, a_override[, b])" dst = src [clinic start generated code]*/ z2Cannot use @text_signature when cloning a function rrjrs r2)test_cloned_forced_text_signature_illegal=ClinicWholeFileTest.test_cloned_forced_text_signature_illegals$  C Er2r4cpSH0n[SUSUS35nURRU5 M2 g)N)r pythonz /*[z| input] # CPP directives, valid or not, should be ignored in C comments. # [z% start generated code]*/ )r r rT)rUdslrVs r2$test_ignore_preprocessor_in_comments8ClinicWholeFileTest.test_ignore_preprocessor_in_commentssJ%C5 C KK  c "&r4r )4__name__ __module__ __qualname____firstlineno__maxDiffrWr]rfrmrprsrvrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr rrrr#r'r,__static_attributes__r4r2rPrPQsG6:4:61" CCC C(*CCCC &&! F&&&&2 2 2 222222)8V22?(?(?*.$2 2+ 24 2 2 26$ 2#;J3$#r4rPc8\rSrSrSSS.SjrS SjrS SjrSrg) ParseFileUnitTestiTN)verifyoutputc[R"[U5R55nUR [ U5 [ USS9 SSS5 g!,(df  g=f)NFr,)r9r:r r7r;rr')rUr+expected_errorr8r9rAs r2expect_parsing_failure(ParseFileUnitTest.expect_parsing_failuresF6.1779:  # #K 8 xe 49 8 8s  A A&c$URSSS9 g)Nrz&Can't extract file type for file 'foo'r+r<)r=r\s r2test_parse_file_no_extension.ParseFileUnitTest.test_parse_file_no_extensions ##C $ r4cSSSS.nUR5H,up#URUS9 URX#S9 SSS5 M. g!,(df  M@=f)Nz*Can't identify file type for file 'foo.rs'z*Can't identify file type for file 'foo.hs'z*Can't identify file type for file 'foo.js')zfoo.rszfoo.hszfoo.jsr[r@)itemsrr=)rUfilenames_to_errorsr+rAs r2!test_parse_file_strange_extension3ParseFileUnitTest.test_parse_file_strange_extensionsYBBB  !4 9 9 ; Hx0++X+U10!<00s A A r5)returnN)r/r0r1r2r=rArFr4r5r4r2r7r7s26t5 Vr4r7c8\rSrSrSrSrSrSrSrSr Sr g ) ClinicGroupPermuterTestic>[XU5nURXE5 grE)rr<)rUlmrr9computeds r2_testClinicGroupPermuterTest._tests*13 *r4c6URS//S/S//S5 g)Nstartstopstep))rT)rSrT)rSrTrUrPr\s r2 test_range"ClinicGroupPermuterTest.test_ranges# WI;F8*  r4c8URSS//S/S//S5 g)Nxychattr))r\)r\r])rZr[r\)rZr[r\r]rVr\s r2test_add_window'ClinicGroupPermuterTest.test_add_windows% S#J<$6(  r4cFUR/SQSS//S/SS//SQ/S5 g) N)a1a2a3b1b2c1d1d2)e1e2e3))rf)rdrerf)rdrerfrgrh)rarbrcrdrerf)rarbrcrdrerfrgrh) rarbrcrdrerfrgrhrirjrkrVr\s r2test_ludicrous&ClinicGroupPermuterTest.test_ludicrouss/ &t 5vt N`?a  r4c8UR//S/S/S//S5 g)Nabr1)r5rororprorpr1rVr\s r2test_right_only'ClinicGroupPermuterTest.test_right_only#s& 2rSE3%.  r4c6SnUR[U5 g)Nc [S///5 g)Nro)rr5r4r2fnPClinicGroupPermuterTest.test_have_left_options_but_required_is_empty..fn-s #SE2r 2r4) assertRaises ValueErrorrUrxs r2,test_have_left_options_but_required_is_emptyDClinicGroupPermuterTest.test_have_left_options_but_required_is_empty,s 3 *b)r4r5N) r/r0r1r2rPrWr^rlrtr}r4r5r4r2rJrJs +     *r4rJcJ\rSrSrSrSrSrSrSrSr Sr S r S r S r g ) ClinicLinearFormatTesti2c T[R"U40UD6nURX$5 grE) libclinic linear_formatr<)rUinputr9kwargsrOs r2rPClinicLinearFormatTest._test3s%**5;F; *r4c(URSS5 g)Nr.rVr\s r2test_empty_strings)ClinicLinearFormatTest.test_empty_strings7s 2rr4c(URSS5 g)NrrVr\s r2test_solo_newline(ClinicLinearFormatTest.test_solo_newline:s 4r4c(URSS5 g)Nz abc rVr\s r2test_no_substitution+ClinicLinearFormatTest.test_no_substitution=s    r4c&URSSSS9 g)N6 abc {name} def z% abc def r.rrVr\s r2test_empty_substitution.ClinicLinearFormatTest.test_empty_substitutionDs"     r4c&URSSSS9 g)Nrz6 abc GARGLE def GARGLErrVr\s r2test_single_line_substitution4ClinicLinearFormatTest.test_single_line_substitutionNs"     r4c&URSSSS9 g)NrzH abc bingle bungle def zbingle bungle rrVr\s r2test_multiline_substitution2ClinicLinearFormatTest.test_multiline_substitutionYs"   %  &r4c[R"S5nUR[U5 [R "SSS9 SSS5 g!,(df  g=f)Nzfound before '{marker}'z'no text before marker for you! {marker} not allowed!markerr9r:r;rrrrUregexs r2test_text_before_block_marker4ClinicLinearFormatTest.test_text_before_block_markerfsA 34  # #K 7  # #$M+9 ;8 7 7 A  Ac[R"S5nUR[U5 [R "SSS9 SSS5 g!,(df  g=f)Nzfound after '{marker}'z&{marker} no text after marker for you!rrrrs r2test_text_after_block_marker3ClinicLinearFormatTest.test_text_after_block_markerlsA 23  # #K 7  # #$L+9 ;8 7 7rr5N)r/r0r1r2rPrrrrrrrrr4r5r4r2rr2s/+   &; ;r4rc \rSrSrSrSrSrg) InertParseriscgrEr5rUr s r2__init__InertParser.__init__t r4cgrEr5rUrs r2rTInertParser.parsewrr4r5Nr/r0r1r2rrTr4r5r4r2rrss   r4rc \rSrSrSrSrSrg) CopyParserizcgrEr5rs r2rCopyParser.__init__{rr4c&URUlgrE)rr9rs r2rTCopyParser.parse~s {{ r4r5Nrr5r4r2rrzs  #r4rc8\rSrSrSrSrSrSrSrSr Sr g ) ClinicBlockParserTestic[S5n[[X55n[U5nUHnUR U5 M UR R 5ngrE)rlistr#r$ print_blockfr)rUrr9languageblockswriterrs r2rPClinicBlockParserTest._testsNT?k%23h'E   u %""$r4c$URX5$rErV)rUrs r2 round_trip ClinicBlockParserTest.round_tripszz%''r4c&URS5 g)Nz@ verbatim text here lah dee dah rr\s r2test_round_trip_1'ClinicBlockParserTest.test_round_trip_1s   r4c&URS5 g)Nz verbatim text here lah dee dah /*[inert] abc [inert]*/ def /*[inert checksum: 7b18d017f89f61cf17d47f92749ea6930a3f1deb]*/ xyz rr\s r2test_round_trip_2'ClinicBlockParserTest.test_round_trip_2s   r4c[S5n[USSS9n[U5URS'[ U5URS'UR U5nUR X%5 g)NfileFr*inertrL)rr(rparsersrrTr<)rUrr9rr1rOs r2 _test_clinic"ClinicBlockParserTest._test_clinicsXT? 8f5 A(^ '&qM &775> *r4c(URSS5 g)Nz verbatim text here lah dee dah /*[copy input] def [copy start generated code]*/ abc /*[copy end generated code: output=03cfd743661f0797 input=7b18d017f89f61cf]*/ xyz z verbatim text here lah dee dah /*[copy input] def [copy start generated code]*/ def /*[copy end generated code: output=7b18d017f89f61cf input=7b18d017f89f61cf]*/ xyz )rr\s r2 test_clinic_1#ClinicBlockParserTest.test_clinic_1s    r4r5N) r/r0r1r2rPrrrrrr4r5r4r2rrs!k( +r4rc\rSrSrSrS|SjrSSSS.SjrSrS rS r S r S r S r Sr SrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrS rS!r S"r!S#r"S$r#S%r$S&r%S'r&S(r'S)r(S*r)S+r*S,r+S-r,S.r-S/r.S0r/S1r0S2r1S3r2S4r3S5r4S6r5S7r6S8r7S9r8S:r9S;r:S<r;S=rr=S?r>S@r?SAr@SBrASCrBSDrCSErDSFrESGrFSHrGSIrHSJrISKrJSLrKSMrLSNrMSOrNSPrOSQrPSRrQSSrRSTrSSUrTSVrUSWrVSXrWSYrXSZrYS[rZS\r[S]r\S^r]S_r^S`r_Sar`SbraScrbSdrcSerdSfreSgrfShrgSirhSjriSkrjSlrkSmrlSnrmSornSproSqrpSrrqSsrrStrsSurtSvruSwrvSxrwSyrxSzryS{rzg)}ClinicParserTestich[5n[U5n[U5nURU5 U$rE)r3r&r"rT)rUtextr1r?rs r2rTClinicParserTest.parses, N1d  U r4czURU5nURnUR[U5U5 XS$rE)rT signaturesr<r)rUrsignatures_in_blockfunction_indexrss r2parse_functionClinicParserTest.parse_functions; 4     Q!45  r4NTr5c .[XRXX4US9$)Nr5)rCr)rUrrlr+r6r7s r2rWClinicParserTest.expect_failures t%8%8%(0uN Nr4cUR[US55 UR[U5R 5UR R 55 g)Nr)rhasattrr<r r7r)rUrxrs r2checkDocstringClinicParserTest.checkDocstringsC K01 )//1++- /r4c[[55n[S5nURU5 URup4UR SUR 5 UR SUR 5 g)Nz5 module os os.access accessos)r&r3r"rTrr<r)rUr?rmodulefunctions r2 test_trivialClinicParserTest.test_trivialsa<>*    U ++ 8==1 v{{+r4cUR[S55nURup#URSUR5 URSUR5 g)NzC # module os os.access rr)rTr rr<r)rUrrrs r2test_ignore_line!ClinicParserTest.test_ignore_linesT 6#   !++ 8==1 v{{+r4c>URS5nURSUR5 URS[UR55 URSnURSUR5 UR UR [5 g)NzO module os os.access path: int rr`path)rr<rr parametersassertIsInstance converterrrUrps r2 test_paramClinicParserTest.test_params&&(   8==1 C 3 345    ' ( akk=9r4c|URS5nURSnURSUR5 g)Nzb module os os.access follow_symlinks: bool = True follow_symlinksTrrr<defaultrs r2test_param_default#ClinicParserTest.test_param_defaults>&&(      1 2 qyy)r4c|URS5nURSnURSUR5 g)Nz module os os.access follow_symlinks: \ bool \ = \ True rTrrs r2test_param_with_continuations.ClinicParserTest.test_param_with_continuationss>&&(      1 2 qyy)r4c URS5nURSnUR[RUR 5 URSUR R5 SnSnURXCSS9 g)Nz module os os.access follow_symlinks: int(c_default='MAXSIZE') = sys.maxsize rMAXSIZEzlWhen you specify a named constant ('sys.maxsize') as your default value, you MUST specify a valid c_default.zh module os os.access follow_symlinks: int = sys.maxsize r`r) rrr<sysmaxsizerr c_defaultrW)rUrrrlrs r2&test_param_default_expr_named_constant7ClinicParserTest.test_param_default_expr_named_constants&&(    1 2 aii0 AKK$9$9: 2   Eq1r4cSnSnSH:nURUS9 URUS9nURXBSS9 SSS5 M< g!,(df  MN=f)Nzf module os os.access follow_symlinks: int = {default} z'Unsupported expression as default value)z {1, 2, 3}z3 if bool() else 4z[x for x in range(42)]) bad_default)rr`r)rformatrW)rUtemplaterlbad_default_valuers r2/test_param_with_bizarre_default_fails_correctly@ClinicParserTest.test_param_with_bizarre_default_fails_correctly%sc  8"  *;< 0AB##Eq#9=< " =< A A cbSnSnURXSS9nURS[U55 g)Nz} module os os.access follow_symlinks: int(c_default='MAXSIZE') = unspecified z+'unspecified' is not a legal default value!r`r+Malformed expression given as default value)rWr str)rUrrlexcs r2-test_unspecified_not_allowed_as_default_value>ClinicParserTest.test_unspecified_not_allowed_as_default_value5s:  <!!%Q!7 FCQr4c,SnSnURXSS9 g)Nzu module os os.access follow_symlinks: int(c_default='MAXSIZE') = 1/0 rr`rrjrs r2*test_malformed_expression_as_default_value;ClinicParserTest.test_malformed_expression_as_default_value?s#  < Eq1r4c,SnSnURX!SS9 g)NzcWhen you specify an expression ('a + b') as your default value, you MUST specify a valid c_default.zE fn follow_symlinks: int = a + b rrrjrs r2test_param_default_expr_binop.ClinicParserTest.test_param_default_expr_binopHs( 2   Eq1r4cURS5nURS[UR55 URSRnUR U[ 5 g)Nz module os os.access follow_symlinks: bool = True something_else: str = '' risomething_else)rr<rrrrr)rUrconvs r2test_param_no_docstring(ClinicParserTest.test_param_no_docstringSs[&&(   C 3 345""#34>> dM2r4c,SnSnURX!SS9 g)Nz]Can't have a parameter without a default ('something_else') after a parameter with a default!z module os os.access follow_symlinks: bool = True something_else: str rirrjrs r2*test_param_default_parameters_out_of_order;ClinicParserTest.test_param_default_parameters_out_of_order^s( 0   Eq1r4cURS5nURSnURSURRS5 g)Nz^ module os os.access path: path_t(allow_fd=1) rrallow_fd)rrr<rargsrs r2!disabled_test_converter_arguments2ClinicParserTest.disabled_test_converter_argumentsksH&&(      ' AKK,,Z89r4cJURS5nURUS5 g)Na module os os.stat as os_stat_fn path: str Path to be examined Ensure that multiple lines are indented correctly. Perform a stat system call on the given path. Ensure that multiple lines are indented correctly. Ensure that multiple lines are indented correctly. ap stat($module, /, path) -- Perform a stat system call on the given path. path Path to be examined Ensure that multiple lines are indented correctly. Ensure that multiple lines are indented correctly. Ensure that multiple lines are indented correctly. rrrUrs r2test_function_docstring(ClinicParserTest.test_function_docstringts.&& (   H ' r4cJURS5nURUS5 g)Nzmodule t t.s a: object Param docstring with trailing whitespace Func docstring summary with trailing whitespace Func docstring body with trailing whitespace z s($module, /, a) -- Func docstring summary with trailing whitespace a Param docstring with trailing whitespace Func docstring body with trailing whitespace r.r/s r2"test_docstring_trailing_whitespace3ClinicParserTest.test_docstring_trailing_whitespaces.&& ?  H ' r4c\UR[S55nURUS5 g)Nz module foo foo.bar x: int Documentation for x. y: int This is the documentation for foo. Okay, we're done here. bar($module, /, x, y) -- This is the documentation for foo. x Documentation for x. Okay, we're done here. rr rr/s r2%test_explicit_parameters_in_docstring6ClinicParserTest.test_explicit_parameters_in_docstrings5&&v / (  H ' r4c\UR[S55nURUS5 g)Na  module foo foo.bar x: int # We're about to have # the documentation for x. Documentation for x. # We've just had # the documentation for x. y: int # We're about to have # the documentation for foo. This is the documentation for foo. # We've just had # the documentation for foo. Okay, we're done here. r6r7r/s r2test_docstring_with_comments-ClinicParserTest.test_docstring_with_commentss5&&v/ ( & H ' r4c\UR[S55nURUS5 g)Nzt module os os.stat path: str This/used to break Clinic! zc stat($module, /, path) -- This/used to break Clinic! r7r/s r2Ttest_parser_regression_special_character_in_parameter_column_of_docstring_first_lineeClinicParserTest.test_parser_regression_special_character_in_parameter_column_of_docstring_first_lines5&&v/ (  H'  r4c^URS5nURSUR5 g)NzA module os os.stat as os_stat_fn os_stat_fn)rr<rr/s r2 test_c_nameClinicParserTest.test_c_names/&&(   x':':;r4cSn[S5R5nUR[U5 UR U5 SSS5 g!,(df  g=f)Nz\ module os os.stat invalid syntax: int = 42 zu Function 'stat' has an invalid parameter declaration: \s+'invalid syntax: int = 42' )r r7r;rrrs r2test_base_invalid_syntax)ClinicParserTest.test_base_invalid_syntaxsR    UW  # #K 5    &6 5 5s A  Ac,SnSnURXSS9 g)Nz[ module os os.stat x: int = invalid syntax z$Syntax error: 'x = invalid syntax\n'r`rrjrs r2!test_param_default_invalid_syntax2ClinicParserTest.test_param_default_invalid_syntaxs#  6 Eq1r4cSnSn[R"5nURXSS9 SSS5 [S5nWR 5nUR XC5 g!,(df  N;=f)Nzn cloned = fooooooooooooooooo This is trying to clone a nonexistent function!! z5Couldn't find existing function 'fooooooooooooooooo'!rrz cls=None, module=, existing='fooooooooooooooooo' (cls or module).functions=[] )rcaptured_stderrrWr rr)rUrrlstderrexpected_debug_prints r21test_cloning_nonexistent_function_correctly_failsBClinicParserTest.test_cloning_nonexistent_function_correctly_fails sk F  $ $ &&   1  5'%'  " *3' &s A  A.cfURS5nURUR[5 g)Nz: module os os.stat -> int )rrreturn_converterr!r/s r2test_return_converter&ClinicParserTest.test_return_converters0&&(   h779MNr4c.SnSnURX5 g)NzE module os os.stat -> invalid syntax z7Badly formed annotation for 'os.stat': 'invalid syntax'rjrs r2$test_return_converter_invalid_syntax5ClinicParserTest.test_return_converter_invalid_syntaxs H E'r4c.SnSnURX5 g)Nz: module os os.stat -> "s" z6Legacy converter 's' not allowed as a return converterrjrs r25test_legacy_converter_disallowed_in_return_annotationFClinicParserTest.test_legacy_converter_disallowed_in_return_annotation's G E'r4c.SnSnURX5 g)NzO module os os.stat -> fooooooooooooooooooooooo z?No available return converter called 'fooooooooooooooooooooooo'rjrs r2test_unknown_return_converter.ClinicParserTest.test_unknown_return_converter/s P E'r4cURS5nURSnUR[RR UR 5 URSUR5 g)Nzt module os os.access * follow_symlinks: bool = True rr)rrr<inspectr KEYWORD_ONLYkindgrouprs r2 test_starClinicParserTest.test_star7s^&&(      1 2 **77@ AGG$r4c|URS5nURSnURSUR5 g)Nz module window window.border [ ls: int ] / lsr)rrr<rars r2 test_groupClinicParserTest.test_groupBs=&&(      % AGG$r4cvURS5nSnUH|up4URX4S9 URUnURURU5 URUR [ RR5 SSS5 M~ URUS5 g!,(df  M=f)Na module curses curses.addch [ y: int Y-coordinate. x: int X-coordinate. ] ch: char Character to add. [ attr: long Attributes for the character. ] / ))r[r)rZrr\r)r]rrraa addch([y, x,] ch, [attr]) y Y-coordinate. x X-coordinate. ch Character to add. attr Attributes for the character. rrrr<rar`r^rPOSITIONAL_ONLYrrUrdatasetrrars r2test_left_group ClinicParserTest.test_left_groupNs&&(  "  #KD45''-  %0  ):):)J)JK65# H ' 65 A B)) B8 cvURS5nSnUH|up4URX4S9 URUnURURU5 URUR [ RR5 SSS5 M~ URUS5 g!,(df  M=f)Na module curses curses.imaginary [ [ y1: int Y-coordinate. y2: int Y-coordinate. ] x1: int X-coordinate. x2: int X-coordinate. ] ch: char Character to add. [ attr1: long Attributes for the character. attr2: long Attributes for the character. attr3: long Attributes for the character. [ attr4: long Attributes for the character. attr5: long Attributes for the character. attr6: long Attributes for the character. ] ] / ) )y1)y2rt)x1r)x2rri)attr1r)attr2r)attr3r)attr4r`)attr5r`)attr6r`rja imaginary([[y1, y2,] x1, x2,] ch, [attr1, attr2, attr3, [attr4, attr5, attr6]]) y1 Y-coordinate. y2 Y-coordinate. x1 X-coordinate. x2 X-coordinate. ch Character to add. attr1 Attributes for the character. attr2 Attributes for the character. attr3 Attributes for the character. attr4 Attributes for the character. attr5 Attributes for the character. attr6 Attributes for the character. rkrms r2test_nested_groups#ClinicParserTest.test_nested_groupsxs&&"( " F #KD45''-  %0  ):):)J)JK65# H'  65rqc,SnSnURX!SS9 g)Nz`Function 'two_top_groups_on_left' has an unsupported group configuration. (Unexpected state 2.b)z module foo foo.two_top_groups_on_left [ group1 : int ] [ group2 : int ] param: int rrrjrs r20test_disallowed_grouping__two_top_groups_on_leftAClinicParserTest.test_disallowed_grouping__two_top_groups_on_lefts( 4    Eq1r4c.SnSnURX5 g)Nz module foo foo.two_top_groups_on_right param: int [ group1 : int ] [ group2 : int ] zaFunction 'two_top_groups_on_right' has an unsupported group configuration. (Unexpected state 6.b)rjrs r21test_disallowed_grouping__two_top_groups_on_rightBClinicParserTest.test_disallowed_grouping__two_top_groups_on_right#   4  E'r4c.SnSnURX5 g)Nz module foo foo.parameter_after_group_on_right param: int [ [ group1 : int ] group2 : int ] zfFunction parameter_after_group_on_right has an unsupported group configuration. (Unexpected state 6.a)rjrs r28test_disallowed_grouping__parameter_after_group_on_rightIClinicParserTest.test_disallowed_grouping__parameter_after_group_on_rightrr4c.SnSnURX5 g)Nz module foo foo.group_after_parameter_on_left [ group2 : int [ group1 : int ] ] param: int zgFunction 'group_after_parameter_on_left' has an unsupported group configuration. (Unexpected state 2.b)rjrs r27test_disallowed_grouping__group_after_parameter_on_leftHClinicParserTest.test_disallowed_grouping__group_after_parameter_on_leftrr4c.SnSnURX5 g)Nz module foo foo.empty_group [ [ ] group2 : int ] param: int ZFunction 'empty_group' has an empty group. All groups must contain at least one parameter.rjrs r2-test_disallowed_grouping__empty_group_on_left>ClinicParserTest.test_disallowed_grouping__empty_group_on_left#   >  E'r4c.SnSnURX5 g)Nz module foo foo.empty_group param: int [ [ ] group2 : int ] rrjrs r2.test_disallowed_grouping__empty_group_on_right?ClinicParserTest.test_disallowed_grouping__empty_group_on_rightrr4c.SnSnURX5 g)Nz module foo foo.empty_group param: int ] group2: int ] z7Function 'empty_group' has a ']' without a matching '['rjrs r2-test_disallowed_grouping__no_matching_bracket>ClinicParserTest.test_disallowed_grouping__no_matching_bracket0s H E'r4cSnSnUH,nURUS9 URX25 SSS5 M. g!,(df  M@=f)N)zo with_kwds [ * a: object ] z] with_kwds [ a: object ] z\You cannot use optional groups ('[' and ']') unless all parameters are positional-only ('/')rrrWrUrnrlrs r2/test_disallowed_grouping__must_be_position_only@ClinicParserTest.test_disallowed_grouping__must_be_position_only<sJ   3 EE*##E/+*** 8 A cURS5nURSUR5 URS[UR55 g)NzL module foo foo.bar Docstring zbar($module, /) -- Docstringrrr<rrrr/s r2test_no_parameters#ClinicParserTest.test_no_parametersQsK&&(   ;X=O=OP C 3 345r4cURSSSS9nURSUR5 URS[UR55 g)Nz module foo class foo.Bar "unused" "notneeded" foo.Bar.__init__ Docstring rir`rrzBar() -- Docstringrrr/s r2test_init_with_no_parameters-ClinicParserTest.test_init_with_no_parameters\sW&&( "#1'6 183E3EF C 3 345r4c.SnSnURX5 g)NzM module foo foo.bar => int / z'Illegal function name: 'foo.bar => int'rjrs r2test_illegal_module_line)ClinicParserTest.test_illegal_module_lineks  8 E'r4c.SnSnURX5 g)NzM module foo foo.bar as 935 / zIllegal C basename: '935'rjrs r2test_illegal_c_basename(ClinicParserTest.test_illegal_c_basenamets  * E'r4c,SnSnURXSS9 g)Nzfoo as r F)r7rjrs r2test_no_c_basename#ClinicParserTest.test_no_c_basename}s9 Ee4r4c.SnSnURX5 g)NzX module foo foo.bar * * 'Function 'bar' uses '*' more than once.rjrs r2test_single_star!ClinicParserTest.test_single_stars  8 E'r4cSnSnUH,nURUS9 URX25 SSS5 M. g!,(df  M@=f)N)zmodule foo foo.bar *z&module foo foo.bar * Docstring here.z"module foo foo.bar this: int *z-module foo foo.bar this: int * Docstring.z:Function 'bar' specifies '*' without following parameters.rrrs r2#test_parameters_required_after_star4ClinicParserTest.test_parameters_required_after_starsF  KEE*##E/+***rcSnUHYup#URX#S9 URU5nURSnURURU5 SSS5 M[ g!,(df  Mm=f)N))TzL class T "void *" "" T.__init__ )zm.Tz module m class m.T "void *" "" @classmethod m.T.__new__ )zm.T.Cz module m class m.T "void *" "" class m.T.C "void *" "" m.T.C.__init__ rr@rrrTrr<fulldisplaynamerUrnrr@rfuncs r2test_fulldisplayname_class+ClinicParserTest.test_fulldisplayname_classsh $"JD43 4(''+  !5!5t<43"33 =A## A2 cSnUHYup#URX#S9 URU5nURSnURURU5 SSS5 M[ g!,(df  Mm=f)N))rr)zm.funcz= module m m.func )zT.methzH class T "void *" "" T.meth )zm.T.methze module m class m.T "void *" "" m.T.meth )z m.T.C.methz module m class m.T "void *" "" class m.T.C "void *" "" m.T.C.meth rrrrs r2test_fulldisplayname_meth*ClinicParserTest.test_fulldisplayname_methsh ,"JD43 4(''+  !5!5t<43"33rc,SnSnURXSS9 g)Nz module foo foo.bar this: int * [from 3] Docstring. zdFunction 'bar': expected format '[from major.minor]' where 'major' and 'minor' are integers; got '3'rirrjrs r2test_depr_star_invalid_format_10ClinicParserTest.test_depr_star_invalid_format_1s(  >  Eq1r4c,SnSnURXSS9 g)Nz module foo foo.bar this: int * [from a.b] Docstring. zfFunction 'bar': expected format '[from major.minor]' where 'major' and 'minor' are integers; got 'a.b'rirrjrs r2test_depr_star_invalid_format_20ClinicParserTest.test_depr_star_invalid_format_2s)  @  Eq1r4c,SnSnURXSS9 g)Nz module foo foo.bar this: int * [from 1.2.3] Docstring. zhFunction 'bar': expected format '[from major.minor]' where 'major' and 'minor' are integers; got '1.2.3'rirrjrs r2test_depr_star_invalid_format_30ClinicParserTest.test_depr_star_invalid_format_3s)  B  Eq1r4c,SnSnURXSS9 g)Nz module foo foo.bar this: int * [from 3.14] Docstring. EFunction 'bar' specifies '* [from ...]' without following parameters.rrjrs r2(test_parameters_required_after_depr_star9ClinicParserTest.test_parameters_required_after_depr_stars(  $  Eq1r4c,SnSnURXSS9 g)Nz module foo foo.bar a: int * [from 3.14] * b: int Docstring. rrrrjrs r2)test_parameters_required_after_depr_star2:ClinicParserTest.test_parameters_required_after_depr_star2(  $  Eq1r4c,SnSnURXSS9 g)Nz module foo foo.bar a: int * [from 3.14] *args: object b: int Docstring. rrrrjrs r2)test_parameters_required_after_depr_star3:ClinicParserTest.test_parameters_required_after_depr_star3rr4c,SnSnURXSS9 g)Nz module foo foo.bar a: int * * [from 3.14] b: int Docstring. /Function 'bar': '* [from ...]' must precede '*'rrrjrs r2$test_depr_star_must_come_before_star5ClinicParserTest.test_depr_star_must_come_before_star&$ @ Eq1r4c,SnSnURXSS9 g)Nz module foo foo.bar a: int *args: object * [from 3.14] b: int Docstring. rrrrjrs r2&test_depr_star_must_come_before_vararg7ClinicParserTest.test_depr_star_must_come_before_vararg3rr4c,SnSnURXSS9 g)Nz module foo foo.bar a: int * [from 3.14] b: int * [from 3.14] c: int Docstring. z3Function 'bar' uses '* [from 3.14]' more than once.rrrjrs r2test_depr_star_duplicate)ClinicParserTest.test_depr_star_duplicate@$  D Eq1r4c,SnSnURXSS9 g)Nz module foo foo.bar a: int * [from 3.14] b: int * [from 3.15] c: int Docstring. z[TSS5$)NflagT)setattr)r?sr21ClinicParserTest.test_directive..s0Mr4setflag)r&r3r1 directivesr"rTr)rUrr?s @r2test_directiveClinicParserTest.test_directivesL<>* 'M)$i  U  $r4cURS5nURup#URSRnUR U[ 5 g)Nz module os os.access path: "s"r)rTrrrrr)rUrrrr"s r2test_legacy_converters'ClinicParserTest.test_legacy_converterssE ?@ ++##F+66 dM2r4cSnSnUH+nURUS9 URX1SS9 SSS5 M- g!,(df  M?=f)N?Annotations must be either a name, a function call, or a string)zmodule os os.access path: 42z"module os os.access path: 42.42z module os os.access path: 42jz"module os os.access path: b"42"rr`rrrUrlrnrs r25test_legacy_converters_non_string_constant_annotationFClinicParserTest.test_legacy_converters_non_string_constant_annotationsJO  EE*##Eq#9+*** 7 A cSnSnUH+nURUS9 URX1SS9 SSS5 M- g!,(df  M?=f)Nr=)z3module os os.access path: {"some": "dictionary"}z6module os os.access path: ["list", "of", "strings"]z3module os os.access path: (x for x in range(42))rr`rrr>s r2-test_other_bizarre_things_in_annotations_fail>ClinicParserTest.test_other_bizarre_things_in_annotations_failsJO  EE*##Eq#9+***rAcSnSnUH,nURUS9 URX15 SSS5 M. g!,(df  M@=f)Nz6Cannot use a kwarg splat in a function-call annotation)z1module fo fo.barbaz o: bool(**{None: "bang!"})z.module fo fo.barbaz -> bool(**{None: "bang!"})z+module fo fo.barbaz -> bool(**{"bang": 42})z0module fo fo.barbaz o: bool(**{"bang": None})rrr>s r29test_kwarg_splats_disallowed_in_function_call_annotationsJClinicParserTest.test_kwarg_splats_disallowed_in_function_call_annotationssEF  EE*##E/+***rc,SnSnURX!SS9 g)NzVA 'self' parameter, if specified, must be the very first thing in the parameter block.zz module foo foo.func a: int self: self(type="PyObject *") rirrjrs r2test_self_param_placement*ClinicParserTest.test_self_param_placements( &   Eq1r4c,SnSnURX!SS9 g)Nz-A 'self' parameter cannot be marked optional.zj module foo foo.func self: self(type="PyObject *") = None r`rrjrs r2"test_self_param_cannot_be_optional3ClinicParserTest.test_self_param_cannot_be_optionals#=  Eq1r4c,SnSnURX!SS9 g)Nz}A 'defining_class' parameter, if specified, must either be the first thing in the parameter block, or come just after 'self'.z module foo foo.func self: self(type="PyObject *") a: int cls: defining_class rrrjrs r2#test_defining_class_param_placement4ClinicParserTest.test_defining_class_param_placements) M   Eq1r4c,SnSnURX!SS9 g)Nz7A 'defining_class' parameter cannot be marked optional.zs module foo foo.func cls: defining_class(type="PyObject *") = None r`rrjrs r2,test_defining_class_param_cannot_be_optional=ClinicParserTest.test_defining_class_param_cannot_be_optionals#G  Eq1r4cSnSnUR[U5 URU5 SSS5 g!,(df  g=f)Nz module foo class Foo "" "" Foo.__init__ cls: defining_class a: object z0Slot methods cannot access their defining class.)r;r{rrs r2.test_slot_methods_cannot_access_defining_class?ClinicParserTest.test_slot_methods_cannot_access_defining_classs; A  # #J 4    &5 4 4s 6 Ac,SnSnURX!SS9 g)Nz!'__new__' must be a class method!zT module foo class Foo "" "" Foo.__new__ r`rrjrs r2test_new_must_be_a_class_method0ClinicParserTest.test_new_must_be_a_class_methods#1  Eq1r4cSnSSSS.nUR5HDup4URX4S9 SUS3nURU5nURXVS S 9 SSS5 MF g!,(df  MX=f) Nz:'__init__' must be a normal method; got 'FunctionKind.{}'! CLASS_METHOD STATIC_METHODGETTER)z @classmethodz @staticmethod@getter) annotation invalid_kindX module foo class Foo "" "" z2 Foo.__init__ rir)rDrrrW)rU err_template annotationsr_r`rr<s r2!test_init_must_be_a_normal_method2ClinicParserTest.test_init_must_be_a_normal_methodsS *, )4(9(9(; $JO L! ".!4!4\!B##E!#DPO)<OOs (A"" A1 c,SnSnURXSS9 g)NzF class Foo "" "" Foo.__init__ -> long z,__init__ methods cannot define a return typerrrjrUrr<s r2%test_init_cannot_define_a_return_type6ClinicParserTest.test_init_cannot_define_a_return_type s$ H E! int z# method cannot define a return typerirzU module foo class Foo "" "" zj Foo.property obj: int / z! methods cannot define parametersrrUrcr_rr<s r2test_invalid_getset$ClinicParserTest.test_invalid_getset s ), %J4 L! %/ g!,(df  MP=f) Nr^rk)rkr^)duprarrurrmz;Cannot apply both @getter and @setter to the same function!rirr)rUdup_annotationsrzrr<s r22test_getter_and_setter_disallowed_on_same_functionCClinicParserTest.test_getter_and_setter_disallowed_on_same_functionC sy13IJ"C#&VHVH "_##E!#D'&#&&s "A A cSH3nURUS9 SUS3nSnURX#SS9 SSS5 M5 g!,(df  MG=f)Nryrlz2 module m z, m.func z#@getter and @setter must be methodsr`rr)rUr_rr<s r2test_getset_no_class%ClinicParserTest.test_getset_no_classQ sZ.J4L! "G##E!#D54/44s ; A c,SnSnURX!SS9 g)NzCalled @coexist twicezY module m @coexist @coexist m.fn r`rrjrs r2test_duplicate_coexist'ClinicParserTest.test_duplicate_coexist\ s#%  Eq1r4c^ URS5nURSnURm U 4SjnSSS.SSS.SS S.S S S.4nUHnUR5upgUR XgS9 U"U5nUR XxR 5 URSS 9n U(aURS U 5 OURS U 5 URS S 9n URS U 5 SSS5 M g!,(df  M=f) Nz module foo foo.func fn: object k: float i: float(unused=True) / * flag: bool(unused=True) = False rc">TUR$rEr)rxparamss r2r34ClinicParserTest.test_unused_param..s s&*..r4rxF)runusedkiTr1) in_parser Py_UNUSED) rTrrvaluesrr<rsimple_declarationrr ) rUrsigr"rnparamrrrdecl parser_declrs @r2test_unused_param"ClinicParserTest.test_unused_paramf s    q!.U +E *D )t ,   E <<>LD47J  2++e+<MM+t4$$[$7 22T2B   k:8777s ,BC99 D c UR[[5S5 UR[[5S5 [R "5nSnUR [U5n[USSS9 SSS5 WRnURURS5 URURS5 URUR5S5 SSS5 g!,(df  N{=f!,(df  g=f)Nz zzThe igloos are meltingz clown.txtE)r+ line_numberr.) r<reprrrrrr;rrr=r+r6r)rUrrArBrs r2test_scaffolding!ClinicParserTest.test_scaffolding s k*O< dX. $ $ &&-F'' V<VkrB=,,C   S\\; 7   SZZ ,   V__. 3' &<<' &s%C?- C.9A,C?. C< 8C?? D cSn[R"5nURU5 SSS5 [S5nUR WR 5U5 g!,(df  N:=f)Nu module test test.fn a: int á param docstring docstring fü bár baß u Warning: Non-ascii characters are not allowed in docstrings: 'á' Warning: Non-ascii characters are not allowed in docstrings: 'ü', 'á', 'ß' )rrrTr r<r)rUrrrs r2%test_non_ascii_character_in_docstring6ClinicParserTest.test_non_ascii_character_in_docstring s]  $ $ && JJu '   *H5' &s A A,c,SnSnURX!SS9 g)NzIllegal C identifier: 17azS module test test.fn a as 17a: int r`rrjrs r2test_illegal_c_identifier*ClinicParserTest.test_illegal_c_identifier s#)  Eq1r4c,SnSnURX!SS9 g)Nz5'__len__' is a special method and cannot be convertedz9 class T "" "" T.__len__ rrrjrs r2"test_cannot_convert_special_method3ClinicParserTest.test_cannot_convert_special_method s#E  Eq1r4c,SnSnURX!SS9 g)Nz@You can't specify py_default without specifying a default value!zE fn a: object(py_default='NULL') rrrjrs r2-test_cannot_specify_pydefault_without_default>ClinicParserTest.test_cannot_specify_pydefault_without_default s#P  Eq1r4c,SnSnURX!SS9 g)Nz"Vararg can't take a default value!z= fn *args: object = None rrrjrs r2%test_vararg_cannot_take_default_value6ClinicParserTest.test_vararg_cannot_take_default_value s#2  Eq1r4c,SnSnURX!SS9 g)NzCint_converter: default value 2.5 for field 'a' is not of type 'int'z5 fn a: int = 2.5 rrrjrs r2#test_default_is_not_of_correct_type4ClinicParserTest.test_default_is_not_of_correct_type s%&  Eq1r4c,SnSnURX!SS9 g)Nz%'fhi' is not a valid legacy converterz1 fn a: 'fhi' rrrjrs r2test_invalid_legacy_converter.ClinicParserTest.test_invalid_legacy_converter s#5  Eq1r4c,SnSnURX!SS9 g)Nz+Parent class or module 'baz' does not existz3 module m baz.func rrrjrs r2*test_parent_class_or_module_does_not_exist;ClinicParserTest.test_parent_class_or_module_does_not_exist s#;  Eq1r4c,SnSnURX!SS9 g)Nz'You can't have two parameters named 'a'za module m m.func a: int a: float rirrjrs r2test_duplicate_param_name*ClinicParserTest.test_duplicate_param_name rr4c,SnSnURX!SS9 g)Nz+Parameter 'module' requires a custom C namezM module m m.func module: int r`rrjrs r2!test_param_requires_custom_c_name2ClinicParserTest.test_param_requires_custom_c_name s#;  Eq1r4c,SnSnURX!SS9 g)Nz0Function 'func' has a ']' without a matching '['zY module m m.func ] docstring r`rrjrs r2)test_state_func_docstring_assert_no_group:ClinicParserTest.test_state_func_docstring_assert_no_group s#@  Eq1r4c,SnSnURX!SS9 g)Nz4Docstring for 'm.func' does not have a summary line!z_ module m m.func docstring1 docstring2 rirrjrs r2$test_state_func_docstring_no_summary5ClinicParserTest.test_state_func_docstring_no_summary s#D  Eq1r4c,SnSnURX!SS9 g)Nz?You may not specify {parameters} more than once in a docstring!z module m m.func docstring summary these are the params: {parameters} these are the params again: {parameters} r rrjrs r21test_state_func_docstring_only_one_param_templateBClinicParserTest.test_state_func_docstring_only_one_param_template s#O   Eq1r4cURSSSS9nURSnURUR[R R 5 g)Nz} module m class m.C "PyObject *" "" m.C.meth cls: defining_class rir`rcls)rrr<r`r^rrlrs r2test_kind_defining_class)ClinicParserTest.test_kind_defining_class sU&&( "#1 '6    & !2!2!B!BCr4c,SnSnURX!SS9 g)Nz?A 'defining_class' parameter cannot be defined at module level.zU module m m.func cls: defining_class r`rrjrs r2,test_disallow_defining_class_at_module_level=ClinicParserTest.test_disallow_defining_class_at_module_level) s#O  Eq1r4r5)r`r){r/r0r1r2rTrrWrrrrrrr rrrrr#r&r+r0r3r8r;r>rBrErHrNrRrUrXr[rbrfror~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr rrrrrrr!r$r'r*r-r7r:r?rCrFrIrLrOrRrUrXrdrhrorrrvr|rrrrrrrrrrrrrrrrrrrr4r5r4r2rrsg!!%TN / ,, :* *2*: R2 2 3 2: 8 , 0 @  < '2 4O((( % %( TL \2$($($($("(" (0* 6 6((5 ( 0=2=: 2 2 2 22 2 2 2 2 2 2 2 ( 2 2 ( ( ( 2 2 2 2 2 (2 (     @ ((%3 : : 0 22 22 '2E$=;0 3 E E E2$;L 46*22222222222 2D2r4rc\rSrSrSrSrSrSrSrSr Sr S r S r S r S rS rSrSrSrSrSrSrSrSrg)ClinicExternalTesti3 Nc[U5 grE)rNr\s r2r]ClinicExternalTest.setUp6 s %r4c[R"5n[R"5nUR[5n[ R "U5 SSS5 SSS5 SSS5 WR5WR5WRR4$!,(df  NS=f!,(df  N\=f!,(df  Ne=frE) rrrKrz SystemExitr mainrr=r@)rUr*r~rlrBs r2 run_clinicClinicExternalTest.run_clinic9 s  # # %  # # %   j )R KK  * & & ||~s||~r||/@/@@@ * ) & % & %s:CB7B&B7!C& B4 0B77 C C CcUR"U6up#nUS:wa&URSRSU<3X#/55 URUS5 U$)NrrzUnexpected failure: args=r.)rrjoinr<rUr*r~rlr@s r2expect_success!ClinicExternalTest.expect_successB sR$/$ 19 IIdii#=w!? JK L b! r4cZUR"U6up#nURUSSU<35 X#4$)NrzUnexpected success: args=)rrcrs r2rW!ClinicExternalTest.expect_failureI s5$/$ D!'AD7%CDxr4cSn[R"U5n[USS9nUR5nSSS5 UR [ [ 5 URSS[ U5nURUS5 [[ SS9nUR5nSSS5 URWW5 g!,(df  N=f!,(df  N2=f)Nz clinic.test.cutf-8encoding-f-or.) rfindfileopenreadrKrrrr<)rU CLINIC_TESTsourcer orig_contentsr~ new_contentss r2 test_external ClinicExternalTest.test_externalN s% !!+. &7 +qFFHM, '!!$ff= b! &7 +q668L, }5, +, +sB:C : C Cc[S5n[R"5n[RR US5n[ USSS9nURU5 SSS5 [R"U5RnURU5 [R"U5RnSSS5 URWW5 g!,(df  Nz=f!,(df  N2=f)Nz /*[clinic input] [clinic start generated code]*/ /*[clinic end generated code: output=da39a3ee5e6b4b0d input=da39a3ee5e6b4b0d]*/ rZwrr) r rtemp_dirrrrrwritestat st_mtime_nsrr<)rUr@tmp_dirrxr pre_mtime post_mtimes r2test_no_change!ClinicExternalTest.test_no_change^ s      !Wgx0Bb#0A 1 //I    #00J " J/10" !s$,C$ CAC$ C! C$$ C2c[S5nSn[R"5n[RR US5n[ USSS9nURU5 SSS5 URU5upgURURU5U<SU<35 URSU5nURUS 5 S n [ USS9nUR5n SSS5 URW RU 5X45 SSS5 g!,(df  N=f!,(df  NJ=f!,(df  g=f) NaA /*[clinic input] output preset block module test test.fn a: int [clinic start generated code]*/ const char *hand_edited = "output block is overwritten"; /*[clinic end generated code: output=bogus input=bogus]*/ zChecksum mismatch! Expected 'bogus', computed '2ed19'. Suggested fix: remove all generated code including the end marker, or use the '-f' option. rZrrrz does not end with rr.zP/*[clinic end generated code: output=0acbef4794cb933e input=9543a8d2da235301]*/ )r rrrrrrrrWrendswithrr<r) rU invalid_inputfail_msgrrxr_rlr~checksumrs r2test_cli_force!ClinicExternalTest.test_cli_forcer s&   (     !Wgx0Bb#0A &1 ((,FA OOCLL2"g%8 E G%%dB/C   S" %F b7+qFFH , OOI..x8&1 3)" !00 ,+%" !s<,D:D!A3D:D)%*D: D& "D:) D7 3D:: Ec[S5nSnSnSnSn[R"5nU"X6U5 U"XFU5 [RR US5n[R"US9nU"X8U5 UR SS S U5n SSS5 UHLn URU S 9 [RR Xj5n URU W 5 SSS5 MN UHLn URU S 9 [RR Xj5n URU W 5 SSS5 MN UHLn URU S 9 [RR Xz5n URU W 5 SSS5 MN SSS5 g!,(df  GN=f!,(df  GM=f!,(df  M=f!,(df  M=f!,(df  g=f) NR /*[clinic input] [clinic start generated code]*/ pass)file1.cfile2.c)zfile1.pyzfile2.pycUHGn[RRX5n[USSS9nUR U5 SSS5 MI g!,(df  M[=f)Nrrr)rrrrr)filessrcdirr@rxrrs r2 create_files6ClinicExternalTest.test_cli_make..create_files sFww||F/$g6!GGDM7666s A A externals)r-v--make--srcdirr[) r rrrrrrrrr ) rUc_codepy_codec_filespy_filesrrext_pathrr~r+rs r2 test_cli_make ClinicExternalTest.test_cli_make s  &) "    !W 6 2 G 4ww||G[9H##2iW8))$*gN 3$\\8\477<<:DMM$,54$%\\8\477<<:D$$T3/54% $\\8\477<<;D$$T3/54$/" !325454 541" !slAG1FG+2F( G=2F;/ G2G  G F% G( F8 2 G; G G G G G-cr[S5n[R"SS9nSHGn[RR X#5n[ USSS9nURU5 SSS5 MI URSS S US [RR US 5S [RR US 5S S5 nURSU5 URS U5 URSU5 URSU5 SSS5 g!,(df  GM=f!,(df  g=f)NrF)quiet)rrfile3.cfile4.crrrrrr z --excluderz ./file3.crrr) r rrrrrrrrrr )rUr@rrxrrr~s r2test_cli_make_exclude(ClinicExternalTest.test_cli_make_exclude s    e ,@ww||G0$g6!GGDM76A%%h GRWW\\'9=RWW\\';?Y C MM)S )   Y ,   Y ,   Y ,-- ,76 - ,s$0D(D"B*D( D%  D(( D6cr[R"5n[RR US5n[ USSS9nUR S5 SSS5 URSU5nURUR5U5 SSS5 g!,(df  NI=f!,(df  g=f)NrZrrrr.r) rrrrrrrrr<r7)rUrrxrr~s r2test_cli_verbose#ClinicExternalTest.test_cli_verbose s    !Wgx0Bb#0A 1%%dB/C   SYY[" - " !00" !s#,B(B:B( B% !B(( B6cJURS5nURSU5 g)Nz-hzusage: clinic.py)rr)rUr~s r2 test_cli_help ClinicExternalTest.test_cli_help s!!!$' (#.r4c .[S5nSn[S5nURS5nURURU5U5 URUR U5U5 UR U5nUR U5nURS5n[X%5HVupgUR5nURUS9 URURU5SU<SU<35 SSS5 MX g!,(df  Mj=f) Nz Legacy converters: B C D L O S U Y Z Z# b c d f h i l p s s# s* u u# w* y y# y* z z# z* Converters: )boolbytechardefining_classdoublefildesfloatintlong long_longobject Py_buffer Py_complex Py_ssize_t Py_UNICODEPyByteArrayObject PyBytesObjectrUshortsize_t slice_indexrunicode unsigned_char unsigned_int unsigned_longunsigned_long_longunsigned_shorta Return converters: bool() double() float() int() long() object() Py_ssize_t() size_t() unsigned_int() unsigned_long() All converters also accept (c_default=None, py_default=None, annotation=None). All return converters also accept (py_default=None). --convertersrrzexpected converter z, got ) r rrrr removeprefix removesuffixrzipr|r)rUpreludeexpected_convertersfinaler~linesrlines r2test_cli_converters&ClinicExternalTest.test_cli_converters s   <   !!.1 w/5  V,c2w'v& $"#6>OI;;=D 2OOI.))fTHE32 ?22s *D D cRURSS5upSnURX25 g)Nr8rZz:can't specify --converters and a filename at the same timerWrrUrrlmsgs r2%test_cli_fail_converters_and_filename8ClinicExternalTest.test_cli_fail_converters_and_filename7 s'$$^X>J cr4cLUR5upURSU5 g)Nzno input filesrD)rUrrls r2test_cli_fail_no_filename,ClinicExternalTest.test_cli_fail_no_filename< s!$$& &,r4cVURSSSS5upSnURX25 g)Nrout.czinput.cz moreinput.cz+error: can't use -o with multiple filenamesrDrEs r2'test_cli_fail_output_and_multiple_files:ClinicExternalTest.test_cli_fail_output_and_multiple_files@ s+$$T7I}M; cr4cSnSHAnURUS9 UR"S/UQ76up4URX5 SSS5 MC g!,(df  MU=f)Nz%can't use -o or filenames with --make))rrM)z filename.c)optsr)rrWr)rUrFrQrrls r2)test_cli_fail_filename_or_output_and_make= cr4c[S5nSn[S5n[R"5n[RR US5n[RR US5n[ USSS9nURU5 SSS5 [ USSS9nURS 5 SSS5 URU5upS U<S 3n URX5 URS U5n[ USS9nUR5n UU3n URX5 SSS5 [ USS9nUR5n URX5 SSS5 SSS5 g!,(df  N=f!,(df  N=f!,(df  Nm=f!,(df  NJ=f!,(df  g=f) Nz /*[clinic input] destination test new file {path}.h output everything test func a: object / [clinic start generated code]*/ zP/*[clinic end generated code: output=da39a3ee5e6b4b0d input=b602ab8e173ac3bd]*/ a /*[clinic input] preserve [clinic start generated code]*/ PyDoc_VAR(func__doc__); PyDoc_STRVAR(func__doc__, "func($module, a, /)\n" "--\n" "\n"); #define FUNC_METHODDEF \ {"func", (PyCFunction)func, METH_O, func__doc__}, static PyObject * func(PyObject *module, PyObject *a) /*[clinic end generated code: output=3dde2d13002165b9 input=a9049054013a1b77]*/ rZztest.c.hrrrr.zModified destination file z; not overwriting!r) r rrrrrrrrWrrrr<) rUrexpected_checksum_lineexpected_outputrin_fnout_fnrrrl expected_errdataexpected_blocks r2test_file_dest!ClinicExternalTest.test_file_destQ s   B !"  &   !WGGLL(3EWW\\':6FeS73q4fcG4 5((/FA8 C//L MM, ,##D%0Aeg.!vvx$)7+A*B!C  6/fw/1vvx  70'" !4344/.0/'" !smA F1:E- F1E>1AF1(F(F1:"F F1- E; 7F1> F F1 F F1 F. *F11 F?r5)r/r0r1r2r3r]rrrWrrrrrrrrArGrJrNrRrUr_r4r5r4r2rr3 sfG&A 6 0(&3P)0V-:./GR - ( 68r4rz_testclinic is missingc\rSrSr\"5R S\"\555 SrSS.Sjr SS.Sjr Sr S r S r S rS rS rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr Sr!Sr"S r#S!r$S"r%S#r&S$r'S%r(S&r)S'r*S(r+S)r,S*r-S+r.S,r/S-r0S.r1S/r2S0r3S1r4S2r5S3r6S4r7S5r8S6r9S7r:S8r;S9rS<r?S=r@S>rAS?rBS@rCSArDSBrESCrFSDrGSErHSFrISGrJSHrKSIrLSJrMSKrNSLrOSMrPSNrQSOrRSPrSSQrTSRrUSSrVSTrWSUrXSVrYSWrZSXr[SYr\SZr]S[r^S\r_S]r`S^rag)_ClinicFunctionalTesti c#t# UH.oRS5(dMU[[U54v M0 g7ftest_N)rgetattr ac_tester.0rs r2 ClinicFunctionalTest. s/L .//'2J5T79d34 .88c(UR[U5nU"U0UD6[R"5RpvSSS5 UR WR [5 UR URW5 g!,(df  NK=frE) assertWarnsRegexDeprecationWarningr _getframef_linenor<r+__file__r6)rUrrxr*kwdsrBrr6s r2 check_deprClinicFunctionalTest.check_depr sl  " "#5u =D)D)3==?+C+Cv> h/ F+ > =s 'B BNrcUc2URn[U[5(aURSU3nS[R "U5SUS3nUR "Xb/UQ70UD6 g)N.z:Passing( more than)?( [0-9]+)? positional argument(s)? to z \(\) is deprecated. Parameters? z: will become( a)? keyword-only parameters? in Python 3\.14r1 isinstancetyper0r9r:rt)rUpnamesrxrr*rsrs r2check_depr_star$ClinicFunctionalTest.check_depr_star ss <??D"d##--$0I $ @ID E  1D1D1r4c Uc2URn[U[5(aURSU3nSU;aSOSnSUSUS[R "U5SUSUS3 nUR "Xr/UQ70UD6 g) Nrw rr.zPassing keyword argumentz to z\(\) is deprecated. Parameterz- will become positional-only in Python 3\.14.rx)rUr{rxrr*rsplrs r2check_depr_kwd#ClinicFunctionalTest.check_depr_kwd s <??D"d##--$06MSr't1VHD $ =bT6(K< =  1D1D1r4cxUR[5 [R"5 SSS5 UR [R"SS5S5 UR [R"/S5/S45 UR [R"S5S5 g!,(df  N=f)Nrr`rr`zwhatever class)rN)rz TypeErrorrgobjects_converterr<r\s r2test_objects_converter+ClinicFunctionalTest.test_objects_converter s   y )  ' ' )* 44Q:FC 44R9IJRQaLbc 44Q7C * )s B++ B9cUR[5 [R"S5 SSS5 UR [R"S5S5 g!,(df  N5=f)Nr BytesObject)r)rzrrgbytes_object_converterr<r\s r2test_bytes_object_converter0ClinicFunctionalTest.test_bytes_object_converter sH   y )  , ,Q /* 99.IK\]* ) A A*cUR[5 [R"S5 SSS5 [ S5nUR [R"U5U45 g!,(df  NA=f)NrsByteArrayObject)rzrrgbyte_array_object_converter bytearrayr<)rUbyte_arrs r2 test_byte_array_object_converter5ClinicFunctionalTest.test_byte_array_object_converter sT   y )  1 1! 4*/0 >>xH8+V* )s A(( A6cUR[5 [R"S5 SSS5 UR [R"S5S5 g!,(df  N5=f)Nrr2)r2)rzrrgunicode_converterr<r\s r2test_unicode_converter+ClinicFunctionalTest.test_unicode_converter sG   y )  ' ' ** 44Y?N* )rcUR[5 [R"SSS5 SSS5 UR [R"5S5 UR [R"S/S5S5 UR [R"SSS 0S 5S 5 g!,(df  N=f) NFz not a int)TTTr.r)FFT)z not emptyrr`r)TTF)rzrrgbool_converterr<r\s r2test_bool_converter(ClinicFunctionalTest.test_bool_converter s   y )  $ $UE; ?* 1135GH 11"b!<>RS 11.1a&!LNab * )s B// B=cUR[R"5S5 UR[R"SSSS5S5 g)N)rrrtFT)rrrr)r<rgbool_converter_c_defaultr\s r2test_bool_converter_c_default2ClinicFunctionalTest.test_bool_converter_c_default s@ ;;=~N ;;E4PTU% 'r4cUR[5 [R"S5 SSS5 UR[5 [R"S5 SSS5 /SQn[ SU55nUR [R"5U5 /SQn[ SU55nUR [R"U6U5 g!,(df  N=f!,(df  N=f)Nrsab)A     "'?\c38# UHn[U5v M g7frEordrir1s r2rj;ClinicFunctionalTest.test_char_converter.. /AQ)1234567890abcdc38# UHn[U5v M g7frErrs r2rjr rr)rzrrgchar_convertertupler<)rUcharsrs r2test_char_converter(ClinicFunctionalTest.test_char_converter s   y )  $ $Q '*   y )  $ $U +*r/// 113X>d/// 11598D* ) ) )sC C/ C,/ C=cLSSKJn UR[5 [R "S5 SSS5 UR[5 [R "US-5 SSS5 UR[5 [R "SUS-5 SSS5 UR[ 5 [R "/5 SSS5 UR[R "5S5 UR[R "SSUS-5S5 UR[R "SSUS-S-S-5S 5 g!,(df  GN4=f!,(df  GN=f!,(df  N=f!,(df  N=f) Nr) UCHAR_MAXrr "8rrrri{rrr) _testcapirrz OverflowErrorrgunsigned_char_converterrr<)rUrs r2test_unsigned_char_converter1ClinicFunctionalTest.test_unsigned_char_converter s'   } -  - -b 1.   } -  - -i!m <.   } -  - -aQ ?.   y )  - -b 1* :: s2   } -  ) ))a- 8.   } -  ) ))a- 8.   y )  ) )" -* 668%@ 66u=xH. - - - ) )rcLSSKJn UR[5 [R "S5 SSS5 UR[ 5 [R "US-5 SSS5 UR[ 5 [R "SUS-5 SSS5 UR[5 [R "/5 SSS5 UR[R "5S5 UR[R "SSUS-5S5 UR[R "SSUS-S-S-5S 5 g!,(df  GN4=f!,(df  GN=f!,(df  N=f!,(df  N=f) Nr) ULLONG_MAXrrrrrirr) rr rzr{rgunsigned_long_long_converterrrr<)rUr s r2!test_unsigned_long_long_converter6ClinicFunctionalTest.test_unsigned_long_long_converterI s (   z *  2 22 6+   } -  2 2:> B.   } -  2 21j1n E.   y )  2 22 6* ??A<P ??1jSTnUW`a ??1zTU~YZFZ]`F`acno+ * - - - - ) )rcXSSKJnJn UR[5 [ R "US- 5 SSS5 UR[5 [ R "US-5 SSS5 UR[5 [ R "/5 SSS5 UR[ R "5S5 UR[ R "SSS5S5 g!,(df  N=f!,(df  N=f!,(df  N~=f)NrPY_SSIZE_T_MINPY_SSIZE_T_MAXrrr`rr`r) rrrrzrrgpy_ssize_t_converterrr<rUrrs r2test_py_ssize_t_converter.ClinicFunctionalTest.test_py_ssize_t_converterW s<   } -  * *>A+= >.   } -  * *>A+= >.   y )  * *2 .* 779<H 771dCZP. - - - ) )s#C9D  D9 D D D)cSSKJnJn UR[5 [ R "/5 SSS5 UR[ R "5S5 UR[ R "SSS5S5 UR[ R "X"S-US-5X"U45 UR[ R "XS- US- 5XU45 g!,(df  N=f)Nrrrrr`ri)rrrrzrrgslice_index_converterr<rs r2test_slice_index_converter/ClinicFunctionalTest.test_slice_index_converterb s<   y )  + +B /* 88:LI 88AtDjQ 88Z[I[]knr]rs(.I K 88Z[I[]knr]rs(.I K * )s C)) C7cbUR[5 [R"S5 SSS5 UR[5 [R"/5 SSS5 UR [R"5S5 g!,(df  Nh=f!,(df  NE=f)Nrr)rzr{rgsize_t_converterrr<r\s r2test_size_t_converter*ClinicFunctionalTest.test_size_t_converterm sm   z *  & &r *+   y )  & &r ** 335u= + * ) )sB B  B B.c$UR[5 [R"/5 SSS5 UR [R"5S5 UR [R"S5S5 g!,(df  NZ=fN)g)@࿩r )rzrrgfloat_converterr<r\s r2test_float_converter)ClinicFunctionalTest.test_float_convertert s`   y )  % %b )* 224g> 2248'B* ) B Bc$UR[5 [R"/5 SSS5 UR [R"5S5 UR [R"S5S5 g!,(df  NZ=fr)rzrrgdouble_converterr<r\s r2test_double_converter*ClinicFunctionalTest.test_double_converterz s`   y )  & &r ** 335w? 33D97C* )r%cUR[5 [R"/5 SSS5 UR [R"[ SS55[ SS545 UR [R"[ S55[ S545 UR [R"S5S5 UR [R"S5S5 g!,(df  N=f)Nrr`z-1-2jr r! )r+)rzrrgpy_complex_converterr<complexr\s r2test_py_complex_converter.ClinicFunctionalTest.test_py_complex_converter s   y )  * *2 .* 771 FQRTUHXY 778HIGT[L\K^_ 77=wG 77;UC * )s C66 DcUR[5 [R"S5 SSS5 UR[5 [R"SSS5 SSS5 UR[5 [R"SSS5 SSS5 UR [R"SSS5S5 UR [R"SSS5S5 UR [R"SSS 5S 5 g!,(df  N=f!,(df  N=f!,(df  N=f) Nrrorpr1bbrrsrccrorpr2)rzrrgrr{r<r\s r2test_str_converter'ClinicFunctionalTest.test_str_converter s   y )  # #A &*   y )  # #Cc 2*   z *  # #C# 6+ 00dC@/R 00dDA?S 00dFCEWX* ) ) ) * *s#D D+D< D(+ D9< E c UR[5 [R"S5 SSS5 UR [R"SSS5S5 UR[5 [R"SSS5 SSS5 UR [R"SS[ [ S5/55S5 UR [R"SS[ [ S5S[ S5/55S 5 UR [R"SSS 5S 5 g!,(df  GN=f!,(df  N=f) Nrrorpr1rsr1rrr3scc)rzrrgstr_converter_encodingr<rrr\s r2test_str_converter_encoding0ClinicFunctionalTest.test_str_converter_encoding s   y )  , ,Q /* 99#sCH/Z   y )  , ,S'3 ?* 99#tYPSTWPXzEZ[]lm 99#tYPSTWPXZ[]`ad]eOfEgh- / 99#tYOQef* )* )sD=2E= E  Ec UR[5 [R"SS5 SSS5 UR [R"S[ /SQ55S5 g!,(df  NA=f)Nrorpabcrr`ri)sabcs)rzrrgpy_buffer_converterr<rr\s r2test_py_buffer_converter-ClinicFunctionalTest.test_py_buffer_converter sQ   y )  ) )#s 3* 66ui >RSUno* )s A)) A7cUR[R"SS5S5 UR[R"SSS9S5 UR[R"SSS9S5 g)Nrr`rrprr)r<rgkeywordsr\s r2 test_keywords"ClinicFunctionalTest.test_keywords sY ++Aq16: ++A3V< ++a15v>r4c$UR[5 [R"SS5 SSS5 UR [R"SSS9S5 UR [R"SSS9S5 g!,(df  NY=f)Nrr`rArrr)rzrrgkeywords_kwonlyr<r\s r2test_keywords_kwonly)ClinicFunctionalTest.test_keywords_kwonly sh   y )  % %a +* 221:FC 22Q! Jr4c ZUR[R"S5S5 UR[R"SS5S5 UR[5 [R"SSS5 SSS5 UR[R"SSS9S5 UR[R"SSSS9S5 UR[R"SSS 9S 5 UR[R"SSSS S 9S 5 g!,(df  N=f)NrrNNNr`rr`NNrirArLrr`riNrM)rNriNrrorpr1drr`rir)r<rgkeywords_opt_kwonlyrzrr\s r2test_keywords_opt_kwonly-ClinicFunctionalTest.test_keywords_opt_kwonly s 66q9;PQ 66q!<>PQ   y )  ) )!Q 2* 66qA>@RS 66q!qA?S 66a@BTU 66a1JLY * )s #D D*cUR[R"S5S5 UR[5 [R"SS5 SSS5 UR[R"SSS9S5 UR[R"SSS9S5 UR[R"SSSS 9S 5 g!,(df  N=f) NrrJr`rArKrirMrNrsr<)r<rgkeywords_kwonly_optrzrr\s r2test_keywords_kwonly_opt-ClinicFunctionalTest.test_keywords_kwonly_opt s 66q9?K   y )  ) )!Q /* 66qA> M 66a@,O 66a1EyQ * )s C  CcUR[5 [R"S5 SSS5 UR[5 [R"SSS9 SSS5 UR [R"SS5S5 UR [R"SSS9S5 g!,(df  N=f!,(df  Nl=f)Nrr`rrrrA)rzrrgposonly_keywordsr<r\s r2test_posonly_keywords*ClinicFunctionalTest.test_posonly_keywords s   y )  & &q )*   y )  & &a 0* 33Aq96B 33A;VD * ) ) )sB5 C5 C CcUR[5 [R"S5 SSS5 UR[5 [R"SS5 SSS5 UR[5 [R"SSS9 SSS5 UR [R"SSS9S5 g!,(df  N=f!,(df  Nx=f!,(df  NV=f)Nrr`rrrAr)rzrrgposonly_kwonlyr<r\s r2test_posonly_kwonly(ClinicFunctionalTest.test_posonly_kwonly s   y )  $ $Q '*   y )  $ $Q **   y )  $ $qA .* 11!q96B * ) ) ) ) )s#C C?C% C C"% C3c>UR[5 [R"S5 SSS5 UR[5 [R"SSS5 SSS5 UR[5 [R"SSSS9 SSS5 UR [R"SSSS9S5 UR [R"SSSS9S5 g!,(df  N=f!,(df  N=f!,(df  N}=f)Nrr`rirsrLr<rpr1)rzrrgposonly_keywords_kwonlyr<r\s r2test_posonly_keywords_kwonly1ClinicFunctionalTest.test_posonly_keywords_kwonly s   y )  - -a 0*   y )  - -aA 6*   y )  - -Q! <* ::1a1EyQ ::1QGS* ) ) ) ) )s#C, C=D, C:= D  Dc UR[5 [R"S5 SSS5 UR [R"SS5S5 UR [R"SSS5S5 UR [R"SSSS5S5 UR [R"SSS9S5 UR [R"SSSS 9S5 UR[5 [R"SSSSS 9 SSS5 UR [R"SSSSS 9S5 g!,(df  GN/=f!,(df  NH=f) Nrr`rTrirUrrXrArLrVrpr1rW)rzrrgposonly_keywords_optr<r\s r2test_posonly_keywords_opt.ClinicFunctionalTest.test_posonly_keywords_opt s   y )  * *1 -* 771=?QR 771a@/R 771aC\R 77Q?AST 771BOT   y )  * *Q!qA >* 77Q!qI<X* )* )sE E' E$' E5c UR[R"S5S5 UR[R"SS5S5 UR[R"SSS5S5 UR[R"SSSS5S5 UR[5 [R"SSS 9 SSS5 UR[R"SSSS 9S5 UR[R"SSSSS 9S5 UR[5 [R"SSSSS 9 SSS5 g!,(df  N=f!,(df  g=f) NrrSr`rTrirUrrXrArLr1rWrV)r<rgposonly_opt_keywords_optrzrr\s r2test_posonly_opt_keywords_opt2ClinicFunctionalTest.test_posonly_opt_keywords_opt s ;;A>@UV ;;AqACUV ;;Aq!DoV ;;Aq!QGV   y )  . .qA 6* ;;AqAFX ;;AqAK\Z   y )  . .a1 B* ) * )* )s4E4E& E#& E4c UR[5 [R"S5 SSS5 UR[5 [R"SS5 SSS5 UR [R"SSS9S5 UR [R"SSSS9S5 UR [R"SSSSS 9S 5 UR[5 [R"SSSSS 9 SSS5 g!,(df  N=f!,(df  N=f!,(df  g=f) Nrr`rArTririrUrrnrXrV)rzrrgposonly_kwonly_optr<r\s r2test_posonly_kwonly_opt,ClinicFunctionalTest.test_posonly_kwonly_opt s   y )  ( ( +*   y )  ( (A .* 55a1=?QR 55a1BOT 55a1QGV   y )  ( (1Q! <* )* ) ) ) * )s#D D#1D4 D # D14 Ec NUR[R"S5S5 UR[R"SS5S5 UR[5 [R"SSS5 SSS5 UR[5 [R"SSS9 SSS5 UR[R"SSSS9S5 UR[R"SSSS S 9S 5 g!,(df  N=f!,(df  Nm=f) NrrSr`rTrirArLrUrrsrX)r<rgposonly_opt_kwonly_optrzrr\s r2test_posonly_opt_kwonly_opt0ClinicFunctionalTest.test_posonly_opt_kwonly_opt s 99!<>ST 99!Q?AST   y )  , ,Q1 5*   y )  , ,Q! 4* 99!Q!DoV 99!Q!qI<X * ) ) )s#DD D D$c UR[5 [R"S5 SSS5 UR[5 [R"SS5 SSS5 UR[5 [R"SSS9 SSS5 UR[5 [R"SSS5 SSS5 UR[5 [R"SSSS9 SSS5 UR [R"SSSS9S5 UR [R"SSSS9S5 UR [R"SSSS S 9S 5 UR [R"SSSS S S 9S5 g!,(df  GN}=f!,(df  GNZ=f!,(df  GN9=f!,(df  GN=f!,(df  N=f)Nrr`rArirsrLrr`riNNrirrsrr`rirNrr1rWerr`rirr)rzrrgposonly_keywords_kwonly_optr<r\s r2 test_posonly_keywords_kwonly_opt5ClinicFunctionalTest.test_posonly_keywords_kwonly_opt s_   y )  1 1! 4*   y )  1 1!Q 7*   y )  1 1!q 9*   y )  1 1!Q :*   y )  1 1Aa @* >>q!qIK`a >>qAKMbc >>q!qANPbc >>q!qAQRSUde* ) ) ) ) ) ) ) ) )s;F# F5?G2G(G+# F25 G G G(+ G9c UR[5 [R"S5 SSS5 UR [R"SS5S5 UR [R"SSS9S5 UR[5 [R"SSSS5 SSS5 UR[5 [R"SSS9 SSS5 UR [R"SSSS9S 5 UR [R"SSSS 9S 5 UR [R"SSSSS 9S 5 UR [R"SSSSS 9S 5 UR [R"SSSSSS9S5 UR [R"SSSSSS9S5 g!,(df  GN=f!,(df  GN?=f!,(df  GN=f)Nrr`)rr`NNNrArirrrrLrrirWrrsrrWrrr)rzrrgposonly_keywords_opt_kwonly_optr<r\s r2$test_posonly_keywords_opt_kwonly_opt9ClinicFunctionalTest.test_posonly_keywords_opt_kwonly_opt! s   y )  5 5a 8* BB1aHJbc BB1JLde   y )  5 5aAq A*   y )  5 5Q ?* BB1a1MOde BB1QOQfg BB1aaPRde BB1a1PQRTfg BB1aaSTUWfg BB1a1PQUVWYhi* )* ) ) )s#GG( G: G%( G7: H c UR[R"S5S5 UR[R"SS5S5 UR[5 [R"SSS9 SSS5 UR[R"SSS5S5 UR[R"SSSS9S5 UR[R"SSSS S 9S 5 UR[R"SSSS S 9S 5 UR[5 [R"SSSS 5 SSS5 g!,(df  N=f!,(df  g=f) NrrSr`rTrArirUrLrrrXrs)r<rg#posonly_opt_keywords_opt_kwonly_optrzrr\s r2(test_posonly_opt_keywords_opt_kwonly_opt=ClinicFunctionalTest.test_posonly_opt_keywords_opt_kwonly_opt1 s! FFqIK`a FFq!LN`a   y )  9 9!q A* FFq!QOQ`a FFq!qQSbc FFq!QRSTVbc FFq!qTUVXde   y )  9 9!Q1 E* ) * ) * )s#E2E& E#& E4c^UR[5 [R"5 SSS5 UR[5 [R"S5 SSS5 UR [R"SS9S5 g!,(df  Ng=f!,(df  ND=f)Nrrqr)rzrrgkeyword_only_parameterr<r\s r2test_keyword_only_parameter0ClinicFunctionalTest.test_keyword_only_parameter= sm   y )  , , .*   y )  , ,Q /* 99A>E * ) ) )sB  B B B,cUR[5 [R"5 SSS5 UR [R"SS5S5 UR [R"SSS9S5 UR [R"SSSS5S5 UR[5 [R"SS9 SSS5 UR[5 [R"SSSSS9 SSS5 g!,(df  N=f!,(df  NU=f!,(df  g=f)Nrr`)rr`r5rArir)rr`)rir)rzrrgposonly_varargr<r\s r2test_posonly_vararg(ClinicFunctionalTest.test_posonly_varargD s   y )  $ $ &* 11!Q7D 11!q9:F 11!Q1=~N   y )  $ $q )*   y )  $ $Q1 2* )* ) * ) ) )s#D>D"0D3 D" D03 EcfUR[5 [R"5 SSS5 UR[5 [R"SSS9 SSS5 UR [R"SSSS5S5 g!,(df  Nk=f!,(df  NI=f)Nrr`rArir)rr`rir)rzrrgvarargr<r\s r2 test_vararg ClinicFunctionalTest.test_varargO su   y )    *   y )   Q! $* ))!Q15~F * ) ) )sB B" B" B0c n[RnUR[U5 UR[USSS9 UR U"SSS9S5 UR U"SSSS5S5 UR U"SSSSS S9S 5 UR U"SS9S 5 UR U"SSS 9S5 g) Nrr`rqrA)rr5Trir)rrFr)rrT)rr5Frr)rgvararg_with_defaultrzrr<r|s r2test_vararg_with_default-ClinicFunctionalTest.test_vararg_with_defaultV s  * * )R( )Ra0 A]3 Aq!Q)>? Aq!Q!,.BC a.1 a1}5r4c [RnUR[U5 UR[USSS9 UR U"SSS9S5 UR U"SSSS9S5 UR U"SSS5S 5 UR U"SSSS S9S 5 UR U"SSSS S S9S 5 UR U"SS9S5 UR U"SSS9S5 UR U"SSSS9S5 g)Nrr`rqrA)rr5r`Nriri)rr5r`ri)rr`riNNr)rrrNr)rrrr)rr5NNrrrs)rgvararg_with_default2rzrr<r|s r2test_vararg_with_default2.ClinicFunctionalTest.test_vararg_with_default2` s  + + )R( )Ra0 A%56 Aa-8 Aq!&=> Aq!q)+?@ Aq!qA.0AB a"56 a1'78 a1*M:r4c UR[R"5S5 UR[R"SS9S5 UR[R"SSS9S5 UR[R"SSSS5S 5 UR[R"SSSSS S9S 5 g) N)r5Nr`rA)r5r`r)rr`rir)rXNr)rXr)r<rgvararg_with_only_defaultsr\s r2test_vararg_with_only_defaults3ClinicFunctionalTest.test_vararg_with_only_defaultsm s <<> K <D4(y$/  .)(?((s (A  A c[R"5nURnURUR5[R5 UR [ 5 UR [RS9 SSS5 [UR[ S5nU"US5 U"USS9 g!,(df  N:=f)N)r no argumentsrrq) rg TestClassget_defining_classassertIsrzrget_defining_class_argrr;)rUobjmethchecks r2test_get_defining_class,ClinicFunctionalTest.test_get_defining_class s!!#%% c,,. 0C0CD  y )  & &9+>+> & ?*.. >J dA da * )s %B77 CcPSSKJn [R"5nURnU"USS5 U"USS5 U"USS5 U"USS5 UR U"USS5[R5 [ UR[S5nU"XSS5 U"XSS5 g)Nr)pyobject_vectorcallr5rrrq) rrrgrrrrr;r)rUrrrrs r2test_get_defining_class_capi1ClinicFunctionalTest.test_get_defining_class_capi s1!!#%%D$-D"d+D"b)D$+ )$B79L9LM.. >J !t4 !v6r4c[R"5nURURS5[RS45 URURSS9[RS45 UR [ 5 UR[RSS9 SSS5 UR [ 5 UR5 SSS5 UR [ 5 URSS5 SSS5 g!,(df  Nm=f!,(df  NP=f!,(df  g=f)Nrr)r)rrarg1arg2)rgrr<rrzr)rUrs r2test_get_defining_class_arg0ClinicFunctionalTest.test_get_defining_class_arg s!!# 33E:#--u5 7 333<#--s3 5  y )  & &9+>+>E & J*  y )  & & (*   y )  & &vv 6* ) * )* ) ) )s$ DD"5D3 D" D03 Ecd[RnU"5 U"SS9 URSUS5 gNrq'a')rg DeprStarNewr|rUrs r2test_depr_star_new'ClinicFunctionalTest.test_depr_star_new s+##  d  UC.r4c[R"5RnU"5 U"SS9 URSUSSS9 g)Nrqrz_testclinic.DeprStarNew.clonedr)rgrclonedr|r|s r2test_depr_star_new_cloned.ClinicFunctionalTest.test_depr_star_new_cloned s:  " " $ + +  T  UB3STr4cd[RnU"5 U"SS9 URSUS5 gr)rg DeprStarInitr|rs r2test_depr_star_init(ClinicFunctionalTest.test_depr_star_init s+$$  d  UC.r4c[R"5RnU"5 U"SS9 URSUSSS9 g)Nrqrz_testclinic.DeprStarInit.clonedr)rgrrr|r|s r2test_depr_star_init_cloned/ClinicFunctionalTest.test_depr_star_init_cloned s:  # # % , ,  T  UB3TUr4c&[RnUR[US5 U"SSS9 U"SSSS9 U"SSS9 U"SSSS9 [ UR SU5nU"SS5 U"SSS5 U"SSSS 9 UR[USSSS 5 g Nrorprrr1rsrAri 'b' and 'c'rLrW)rgDeprStarInitNoInlinerzrrr|rUrrs r2test_depr_star_init_noinline1ClinicFunctionalTest.test_depr_star_init_noinlines,, )S#. cS cSC  C3 C3#,,mSA c3 c3 c3# )S#sC=r4cd[RnU"5 U"S5 URSUSS9 gNrrq)rg DeprKwdNewrrs r2test_depr_kwd_new&ClinicFunctionalTest.test_depr_kwd_news.""  D  E3$/r4cd[RnU"5 U"S5 URSUSS9 gr )rg DeprKwdInitrrs r2test_depr_kwd_init'ClinicFunctionalTest.test_depr_kwd_inits.##  D  E3$/r4cF[Rn[RnUR[US5 U"SSS9 U"SSSS9 U"SSS9 U"SSSS9 [ UR SU5nU"SS5 U"SSS5 U"SSSS 9 UR[USSSS 5 gr)rgDeprKwdInitNoInlinedepr_star_noinlinerzrrr|rs r2test_depr_kwd_init_noinline0ClinicFunctionalTest.test_depr_kwd_init_noinlines++** )S#. cS cSC  C3 C3#,,mSA c3 c3 c3# )S#sC=r4cV[RnU"SS9 URSUS5 g)Nrqrro)rgdepr_star_pos0_len1r|r|s r2test_depr_star_pos0_len1-ClinicFunctionalTest.test_depr_star_pos0_len1+s&  * * T  UB,r4c[RnU"SSS9 [URSU5nU"SSS9 U"SS5 g)Nrrrz 'a' and 'b'rorArp)rgdepr_star_pos0_len2rr|rUrxrs r2test_depr_star_pos0_len2-ClinicFunctionalTest.test_depr_star_pos0_len20s<  * * Q! ,,mR@ cQ c3r4c[RnU"SSSSS9 [URSU5nU"SSSSS9 U"SSSSS9 U"SSSSS 9 g) NrrV'a', 'b' and 'c'rornrprsr1r)rgdepr_star_pos0_len3_with_kwdrr|rs r2!test_depr_star_pos0_len3_with_kwd6ClinicFunctionalTest.test_depr_star_pos0_len3_with_kwd7sZ  3 3 Q!qA,,.@"E cQ!q! c3!q! c3q!r4c[RnU"SSS9 U"SSS9 U"SS9 [URSU5nU"SS5 g)NrrrrorArq'b'rp)rgdepr_star_pos1_len1_optrr|rs r2test_depr_star_pos1_len1_opt1ClinicFunctionalTest.test_depr_star_pos1_len1_opt?sC  . . Q!  3!  Q,,eR8 c3r4c[RnU"SSS9 U"SSS9 [URSU5nU"SS5 g)NrrrrorAr'rp)rgdepr_star_pos1_len1rr|rs r2test_depr_star_pos1_len1-ClinicFunctionalTest.test_depr_star_pos1_len1Gs<  * * Q!  3! ,,eR8 c3r4c[RnU"SSSSS94 U"SSSSS94 [URSU5nU"SSSSS94 U"SSSSS 94 g) NrrVrornrrprsr1r)rgdepr_star_pos1_len2_with_kwdrr|rs r2!test_depr_star_pos1_len2_with_kwd6ClinicFunctionalTest.test_depr_star_pos1_len2_with_kwdNse  3 3 Q!qA 3!qA,,mR@ c3!q!" c3q!"r4c[RnU"SSSS9 U"SSSS9 U"SSSS9 [URSU5nU"SSS5 g) NrrsrorirprLz'c'r1)rgdepr_star_pos2_len1rr|rs r2test_depr_star_pos2_len1-ClinicFunctionalTest.test_depr_star_pos2_len1VsQ  * * Q!q 3!q 3q,,eR8 c3r4c[RnU"SSSSS9 U"SSSSS9 U"SSSSS9 [URSU5nU"SSSSS 9 U"SSSS 5 g) NrrVrornrprs 'c' and 'd'r1rrW)rgdepr_star_pos2_len2rr|rs r2test_depr_star_pos2_len2-ClinicFunctionalTest.test_depr_star_pos2_len2^sg  * * Q!qA 3!qA 3qA,,mR@ c3q! c3S!r4c[RnU"SSSSSS9 U"SSSSSS9 U"SSSSSS9 [URSU5nU"SSSSSS 9 U"SSSS SS 9 g) Nrrorpr1rWrrorpr1rWrrprr8r1rrW)r)rgdepr_star_pos2_len2_with_kwdrr|rs r2!test_depr_star_pos2_len2_with_kwd6ClinicFunctionalTest.test_depr_star_pos2_len2_with_kwdgsq  3 3 Q!qA# 3!qA# 3qA#,,mR@ c3qA& c3SA&r4c&[RnUR[US5 U"SSS9 U"SSSS9 U"SSS9 U"SSSS9 [ UR SU5nU"SS5 U"SSS5 U"SSSS 9 UR[USSSS 5 gr)rgrrzrrr|rs r2test_depr_star_noinline,ClinicFunctionalTest.test_depr_star_noinlineps  ) ) )R- SC SC3 3# 3#,,mR@ c3 c3 c3# )Rc3[RnU"SS5 U"SSS5 UR[US5 [ UR SU5nU"SSS9 U"SSSS9 U"SSSS9 U"SSSS9 UR[USSS9 UR[USSSS 9 g) Nrorpr1rrArirarLrs)rgdepr_kwd_noinlinerzrrrrs r2test_depr_kwd_noinline+ClinicFunctionalTest.test_depr_kwd_noinlines  ( ( 3  3S )R-++]B? cS cSC  cSC  c3# )R4 )R3#=r4c l[RnU"SSSSSSSSS 9 S n[UR[R "U5U5nU"SSSSSSSSS 9 U"SSSSSSSSS 9 U"SSSSSSSSS 9 U"SSSSSSSSS9 U"SSSSSSSSS9 U"SSSSSSSSS9 UR [USSSSSSSSS9 g)Nrorpr1rWrrrFrGrNa!Passing keyword arguments 'b', 'c', 'd', 'e', 'f' and 'g' to depr_kwd_multi() is deprecated. Parameter 'b' will become positional-only in Python 3.14. Parameters 'c' and 'd' will become positional-only in Python 3.15. Parameters 'e', 'f' and 'g' will become positional-only in Python 3.16.rMrLrKrJrIrH)rorpr1rWrrrFrG)rgdepr_kwd_multirrtr9r:rzrrPs r2test_depr_kwd_multi(ClinicFunctionalTest.test_depr_kwd_multis  % % 3S#sC4 V  6):B? c3S#scS9 c3S#s; c3SC3#= c3scSC3? c3#scSA cSC3#sC )R3#scUX\_`r4c [RnUR[USSSSSSS5 Sn[ UR [ R"U5U5nU"SSSSSSSS 9 U"SSSSSSSS 9 U"SSSSSSSS 9 U"SSSSSSSS 9 S n[ UR [ R"U5U5nU"SSSSSSSS9 U"SSSSSSSS9 UR[USSSSSSSS9 g)Nrorpr1rWrrrFzPassing more than 4 positional arguments to depr_multi() is deprecated. Parameter 'e' will become a keyword-only parameter in Python 3.15. Parameter 'f' will become a keyword-only parameter in Python 3.14.)rF)rrF)rrrF)rWrrrFzPassing keyword arguments 'b' and 'c' to depr_multi() is deprecated. Parameter 'b' will become positional-only in Python 3.14. Parameter 'c' will become positional-only in Python 3.15.)r1rWrrrF)rpr1rWrrrF)rorpr1rWrrrF)rg depr_multirzrrrtr9r:rPs r2test_depr_multi$ClinicFunctionalTest.test_depr_multis  ! ! )Rc3S#sK Q 6):B? c3S#sc2 c3S#4 3S#s3 3SC3#5 H 6):B? c3#sc: cSC3#< )R3#scUXYr4r5)br/r0r1r2localsrGdirrgrtr|rrrrrrrrrrrrrrrrr rrrr#r(r.r4r8r>rCrGrPrZr^rbrfrkrpruryr}rrrrrrrrrrrrrrrrrrrrrrrrrrr rrrrr$r)r-r1r5r:r@rCrQrVrZr^rcrgrkrorsrwr4r5r4r2rbrb s HOOL #ILL,:> 26: 2D^ W O c' E j C k O h D j I p Q K>C D D Y gp ? F KZRECT Y C =Yf j FF 3G6 ;b @9,B7*S./  77"/ U / V >0 0 >- "#"' =Q$7>7 >  > >a"Zr4rbc6\rSrSrSr\S5rSrSrSr g)LimitedCAPIOutputTestsi c [SS9Ulg)NTr;)r3r r\s r2r]LimitedCAPIOutputTests.setUp s"5 r4c [SUS35$)NzO /*[clinic input] output everything buffer z [clinic start generated code]*/ /*[clinic input] dump buffer [clinic start generated code]*/ r rs r2wrap_clinic_input(LimitedCAPIOutputTests.wrap_clinic_inputs% G    r4cURS5nURRU5nURSU5 UR SU5 UR SU5 g)NzE func f: float / PyFloat_AS_DOUBLEzfloat f;zf = (float) PyFloat_AsDoublerr rTr rrs r2test_limited_capi_float.LimitedCAPIOutputTests.test_limited_capi_floats[&&(   KK%%e,  ,i8 j), 4i@r4cURS5nURRU5nURSU5 UR SU5 UR SU5 g)NzF func f: double / rz double f;zf = PyFloat_AsDoublerrs r2test_limited_capi_double/LimitedCAPIOutputTests.test_limited_capi_double&s[&&(   KK%%e,  ,i8 k9- ,i8r4r.N) r/r0r1r2r] staticmethodrrrr4r5r4r2r|r| s&6     A 9r4r|z_testclinic_limited is missingcr\rSrSr\"5R S\"\555 SrSr Sr Sr Sr g) LimitedCAPIFunctionalTesti7c#t# UH.oRS5(dMU[[U54v M0 g7frd)rrf_testclinic_limitedrhs r2rj#LimitedCAPIFunctionalTest.9s0V 8OOG 8rlcUR[5 [R"5 SSS5 UR [R"S5S5 UR[5 [R"S5 SSS5 UR[5 [R"S5 SSS5 g!,(df  N=f!,(df  NT=f!,(df  g=f)Nri?xyz)rzrr my_int_funcr<r\s r2test_my_int_func*LimitedCAPIFunctionalTest.test_my_int_func<s   y )  + + -* ,88;Q?   y )  + +C 0*   y )  + +E 2* ) * )* ) ) )s#C/C#C% C C"% C3c|UR[5 [R"5 SSS5 UR[5 [R"S5 SSS5 UR [R"SS5S5 UR[5 [R"SS5 SSS5 UR[5 [R"SS5 SSS5 g!,(df  N=f!,(df  N=f!,(df  Nf=f!,(df  g=f)Nrr`rirr)rzrr my_int_sumr<r\s r2test_my_int_sum)LimitedCAPIFunctionalTest.test_my_int_sumEs   y )  * * ,*   y )  * *1 -* ,771=qA   y )  * *3 2*   y )  * *1e 4* )* ) ) )* ) ) )s/C: D $DD-: D D D*- D;c6[R[R4HnURURS9 UR U"SS5S5 UR [5 U"5 SSS5 UR [5 U"S5 SSS5 UR [5 U"SS5 SSS5 SSS5 M g!,(df  Nh=f!,(df  NS=f!,(df  N==f!,(df  M=f)N)rrg@g @r2)r my_float_sum my_double_sumrr/r<rzr)rUrs r2test_my_double_sum,LimitedCAPIFunctionalTest.test_my_double_sumPs  , ,  - - D4==1  c35&&y1F2&&y1G2&&y1SM2 21  211111 21sS/D ,C4D  C'D 7 C8D  C$ D ' C5 1D 8 D D  D cF[Rn"SS[5n"SS5nSH[nURU"U5U5 U"U5nURU"U5U5 U"U5nURU"U5U5 M] UR [ 5 U"SS-5 SSS5 UR [S5 U"S 5 SSS5 UR [5 U"S 5 SSS5 UR [5 U"S 5 SSS5 UR [5 U"S5 SSS5 g!,(df  N=f!,(df  N=f!,(df  N}=f!,(df  Nh=f!,(df  g=f) Nc\rSrSrSrg)ALimitedCAPIFunctionalTest.test_get_file_descriptor..MyIntibr5N)r/r0r1r2r4r5r4r2MyIntrbs r4rc \rSrSrSrSrSrg)BLimitedCAPIFunctionalTest.test_get_file_descriptor..MyFileiecXlgrE_fd)rUfds r2rKLimitedCAPIFunctionalTest.test_get_file_descriptor..MyFile.__init__fsr4cUR$rErr\s r2filenoILimitedCAPIFunctionalTest.test_get_file_descriptor..MyFile.filenohs xxr4rN)r/r0r1r2rrr4r5r4r2MyFileres   r4r)rrr`ri@r`z!bool is used as a file descriptorTrr;) rget_file_descriptorr%r<rzrrnRuntimeWarningr)rUget_fdrrrmyintmyfiles r2test_get_file_descriptor2LimitedCAPIFunctionalTest.test_get_file_descriptor^s>$88 C   (B   VBZ ,"IE   VE]B /BZF   VF^R 0(  } - 1c6N.  " ">#FH 4LH  y ) 3K*   y ) 5M*   y ) 4L* ). -HH* ) ) ) ) )s< E E0 E0 F< F E E-0 E> F F r5N) r/r0r1r2ryrGrzrrrrrr4r5r4r2rr7s: HOOV #$7 8VV3 5 " r4rc*\rSrSrSrSrSrSrSrg)PermutationTestsiz#Test permutation support functions.c~Sn[[/SQ55n[[U55nUR X15 g)N)r5)rirr<r<)rr;rrr<rUrr]actuals r2test_permute_left_option_groups0PermutationTests.test_permute_left_option_groupss7  C N#1$78 *r4c~Sn[[/SQ55n[[U55nUR X15 g)N)r5rrr<r<)rr;rrr<rs r2 test_permute_right_option_groups1PermutationTests.test_permute_right_option_groupss7  C N#2489 *r4c vSSSSS.nSSSSS.nSSSS S.nSSS S S.nS SSS S.nS SSSS.nSSSSS.nS SSSS.nSSSSS.n UX#UXVUX4 n U HZn UR"S0U D6 U R5upp[XU5n[U5nUR UU5 SSS5 M\ g!,(df  Mn=f)Nr5)r5)leftrequiredrightrrArL)rAririr)rirnr)rirnr>rq)rArr)rirsrr)rLrirs)rArrrsrs)rr)rsrnrVr=)rorpr1rWrr)rrrrr<)rUemptynoleft1noleft2noleft3noright1noright2noright3 leftandright1 leftandright2rnrrrrr permutationsrs r2test_permute_optional_groups-PermutationTests.test_permute_optional_groupss4B  FV K& K*   R FR  J    g     F''28--//6tuM |,  2 ('''s =B)) B8 r5N) r/r0r1r2__doc__rrrr4r5r4r2rrs- + +N3r4rc8\rSrSrSrSrSrSrSrSr Sr g ) FormatHelperTestsicSnUHDup#URX#S9 [R"U5nURXC5 SSS5 MF g!,(df  MX=f)N) )a br)za b r)za b r)z a b r)z a b r)z a b za b) a br)z a b r)z a b r)r?r)rrnormalize_snippetr<)rUrnr?rr~s r2+test_strip_leading_and_trailing_blank_lines=FormatHelperTests.test_strip_leading_and_trailing_blank_linessR   'OEE=11%8  />= '== (A A cSnSnSnSnX#US.nUR5HBupgURUS9 [R"XS9nUR X5 SSS5 MD g!,(df  MV=f)Nz; one two three z one two threez one two threez% one two three)rrr)indent)rDrrrr<) rUsnippet zero_indent four_indent eight_indentexpected_outputsrrrs r2test_normalize_snippet(FormatHelperTests.test_normalize_snippets          +|L 0 6 6 8 FV,"44WL  2-,!9,,s &A%% A4 cSnUHDup#URX#S9 [R"U5nURXC5 SSS5 MF g!,(df  MX=f)N))r;"abc")z\abcz"\\abc")z\a\bcz "\\a\\bc")z\a\\bcz "\\a\\\\bc")rz "\"abc\"")rz"\'a\'")r@r)rrdocstring_for_c_stringr<)rUrnr@rr~s r2test_escaped_docstring(FormatHelperTests.test_escaped_docstringsR &ND4;66t<  /<;&;;rcZSnSn[R"U5nURX25 g)Nz{}, {a}z {{}}, {{a}})r format_escaper<)rUr@rr~s r2test_format_escape$FormatHelperTests.test_format_escape,s* %%d+ 'r4cUR[R"SSS9S5 SnSn[R"USS9nURX25 SnSn[R"USS9nURX25 g)Nr.bar)prefixone twoz barone bartwo one two zbar barone bartwo )r<rindent_all_linesrUr?rr~s r2test_indent_all_lines'FormatHelperTests.test_indent_all_lines2 33BuErJ     ((u= '     ((u= 'r4cUR[R"SSS9S5 SnSn[R"USS9nURX25 SnSn[R"USS9nURX25 g)Nr.r)suffixrz onefoo twofoorzfoo onefoo twofoo )r<rsuffix_all_linesrs r2test_suffix_all_lines'FormatHelperTests.test_suffix_all_linesQrr4r5N) r/r0r1r2rrrrrrr4r5r4r2rrs 0&3: 0( (>(r4rc>\rSrSrSrSrSrSrSrSr Sr S r g ) ClinicReprTestsiqc[S5nSnUR[U5U5 [SS/SS5nSnUR[U5U5 [SS /S S S 9nS nUR[U5U5 g)Nrz-rbazeggsspamz. longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_ wow_so_longvery_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_r.)rdsl_namerr9rzg)r"r<r)rUr expected_reprblock2expected_repr_2block3expected_repr_3s r2test_Block_reprClinicReprTests.test_Block_reprrse G  em4ueR8J f7""%   v  f7r4c[5n[SSUSS9nUR[U5S5 [SSUS9nUR[U5S 5 g) Nrr)r)rzr r*z2rbuffer)rzr z()r3r%r<r)rUr1 destination destination2s r2test_Destination_repr%ClinicReprTests.test_Destination_reprs] N! qy    S #5xB  l+-WXr4cb[S[55nUR[U5S5 g)Nrz)rr3 assertRegexr)rUrs r2test_Module_repr ClinicReprTests.test_Module_reprs%|~. f'FGr4ch[S[5SSS5nUR[U5S5 g)Nr some_typedefsome_type_objectz)rr3rrrs r2test_Class_reprClinicReprTests.test_Class_reprs,E<>4AST c$BCr4cVUR[[R5S5 g)Nz")r<rrr[r\s r2test_FunctionKind_repr&ClinicReprTests.test_FunctionKind_reprs!  ** +-Q r4c .[S[5SSS[5[RSS9nUR [ U5S5 [SSU5n[S[RRUUS9nUR [ U5S5 g) NrfoofooF)rrrr full_namerQr`coexistzr)r`rrz) rr3r!r METHOD_INITr<rrrr^POSITIONAL_OR_KEYWORD)rUrr parameters r2!test_Function_and_Parameter_reprs1ClinicReprTests.test_Function_and_Parameter_reprss>13))   h)BC"5%:  ""88  i*DEr4c^[RRS5nUR[ U5S5 SUlUR RS5 UR[ U5S5 UR RS5 UR[ U5S5 g)NrZz(*)token1 condition1z3)token2 condition2zA)rcppMonitorrrrstackappend)rUmonitors r2test_Monitor_repr!ClinicReprTests.test_Monitor_reprs--''1 g(ST  56  MQ   56  M P r4r5N) r/r0r1r2r rrrrr&r3r4r5r4r2rrqs)8* YHD F, r4r__main__)V functoolsrtestrr test.supportrtest.support.os_helperrrr textwrapr unittestr r^os.pathrr9rskip_if_missingimports_under_toolrrrrrlibclinic.convertersrrrlibclinic.functionrrrrrrrrr libclinic.clanguagerlibclinic.converterrrlibclinic.return_convertersr r!libclinic.block_parserr"r#libclinic.codegenr$r%libclinic.dsl_parserr& libclinic.clir'r(r3rCrIrNrPr7rJrrrrrr _testclinicrg ImportErrorskipIfrbr|rrrrrr/rr5r4r2rKsC $"99  8$""8,>>QQ$$$-AS9;.0-$,% ;?t0& 2U #(U #pVV2-*h-*`>;X>;B  ##:H:zq2xq2h3T8T8l # d"$<=x Z8,,x Z>x Zv%9X..%9P $,.NOF 1 1FPFRg3x((g3TC())C(LT h''T n z MMOmE-,r[IRs1#A'H H-H; H*-H87H8;II