python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_code.cpython-312.pyc

͑ed.dZddlZddlZddlZddlZddlZddlZddlZddlZ	ddl	Z	ddlmZm
Z
mZmZddlmZddlmZddlmZmZedZdZd	Zd
ZGddej4Zd
ZGddej4ZGddej4ZdZdZ dZ!dZ"dZ#e$fdZ%dZ&dZ'dZ(Gddej4Z)e
dre	e	jTZ+e	jXde	jZZ.e+j^Z0e.fe0_1e	jde0_3e+jhZ5e	jle	jde	jZfe5_1e	jne5_3e+jpZ9e	jle	jde	jte	jZfe9_1e	jne9_3da;dZ<e.e<Z=e0e=Z>Gd d!ej4Z?d"Z@eAd#k(rejyy#e
$rdZ	YwxYw)$aThis module includes tests of the code object representation.

>>> def f(x):
...     def g(y):
...         return x + y
...     return g
...

>>> dump(f.__code__)
name: f
argcount: 1
posonlyargcount: 0
kwonlyargcount: 0
names: ()
varnames: ('x', 'g')
cellvars: ('x',)
freevars: ()
nlocals: 2
flags: 3
consts: ('None', '<code object g>')

>>> dump(f(4).__code__)
name: g
argcount: 1
posonlyargcount: 0
kwonlyargcount: 0
names: ()
varnames: ('y',)
cellvars: ()
freevars: ('x',)
nlocals: 1
flags: 19
consts: ('None',)

>>> def h(x, y):
...     a = x + y
...     b = x - y
...     c = a * b
...     return c
...

>>> dump(h.__code__)
name: h
argcount: 2
posonlyargcount: 0
kwonlyargcount: 0
names: ()
varnames: ('x', 'y', 'a', 'b', 'c')
cellvars: ()
freevars: ()
nlocals: 5
flags: 3
consts: ('None',)

>>> def attrs(obj):
...     print(obj.attr1)
...     print(obj.attr2)
...     print(obj.attr3)

>>> dump(attrs.__code__)
name: attrs
argcount: 1
posonlyargcount: 0
kwonlyargcount: 0
names: ('print', 'attr1', 'attr2', 'attr3')
varnames: ('obj',)
cellvars: ()
freevars: ()
nlocals: 1
flags: 3
consts: ('None',)

>>> def optimize_away():
...     'doc string'
...     'not a docstring'
...     53
...     0x53

>>> dump(optimize_away.__code__)
name: optimize_away
argcount: 0
posonlyargcount: 0
kwonlyargcount: 0
names: ()
varnames: ()
cellvars: ()
freevars: ()
nlocals: 0
flags: 3
consts: ("'doc string'", 'None')

>>> def keywordonly_args(a,b,*,k1):
...     return a,b,k1
...

>>> dump(keywordonly_args.__code__)
name: keywordonly_args
argcount: 2
posonlyargcount: 0
kwonlyargcount: 1
names: ()
varnames: ('a', 'b', 'k1')
cellvars: ()
freevars: ()
nlocals: 3
flags: 3
consts: ('None',)

>>> def posonly_args(a,b,/,c):
...     return a,b,c
...

>>> dump(posonly_args.__code__)
name: posonly_args
argcount: 3
posonlyargcount: 2
kwonlyargcount: 0
names: ()
varnames: ('a', 'b', 'c')
cellvars: ()
freevars: ()
nlocals: 3
flags: 3
consts: ('None',)

N)cpython_onlycheck_impl_detailrequires_debug_ranges
gc_collect)assert_python_ok)threading_helper)opmapopnameCOPY_FREE_VARSc#~K|D]4}t|}|jdrd|jz1|6yw)z.Yield a doctest-safe sequence of object reprs.z<code objectz<code object %s>N)repr
startswithco_name)teltrs   B/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_code.pyconstsrs>I<<'$s{{22Gs;=c
dD]}t|dt|d|z!tdtt|jy)z1Print out a text representation of a code object.)
nameargcountposonlyargcountkwonlyargcountnamesvarnamescellvarsfreevarsnlocalsflagsz: co_zconsts:N)printgetattrtupler	co_consts)coattrs  rdumpr'sG=<	$EDL 9:;<
)U6",,/01c:dtj|S)NzForeign getitem: )super__getitem__)selfis  rexternal_getitemr.s
uw2215677r(ceZdZedZedZdZdZdZdZ	dZ
dZd	Zd
Z
edZdZd
ZedZdZdZdZdZy)CodeTestcDddl}|jddd}|j|jd|j|jd|j|j
d|j
t5t|dddy#1swYyxYw)Nrfilenamefuncname)		_testcapi
code_newemptyassertEqualco_filenamerco_firstlinenoassertRaises	Exceptionexec)r,r5r%s   r
test_newemptyzCodeTest.test_newemptys

$
$ZR
@4Z0**B/


y
)	H			sBBcddlmddfd}Gddt}||dt|j}|j
dj}|j|||gd	}|j|dd
y)Nr)FunctionTypec"fdjS)NcSN	__class__sr<lambda>zICodeTest.test_closure_injection.<locals>.create_closure.<locals>.<lambda>sIr()__closure__rDs`rcreate_closurez7CodeTest.test_closure_injection.<locals>.create_closures%222r(cz|j|jdzttdg|jzS)z9A new code object with a __class__ cell added to freevarsrD)co_freevarsco_code)replacerKbytesrrL)cs rnew_codez1CodeTest.test_closure_injection.<locals>.new_codes799)GQVXfhiWjQklmluluQu9vvr(c|j}|jrJ|}|j}t|||t	|||yrB)__code__rG__defaults__setattrglobals)	clsrfcodeclosuredefaultsr?rHrPs	      radd_foreign_methodz;CodeTest.test_closure_injection.<locals>.add_foreign_methodsIAJJ'D}}$$S)G~~HC|D')T8WUVr(ceZdZy)-CodeTest.test_closure_injection.<locals>.ListN)__name__
__module____qualname__rCr(rListr]sr(rar+)rJzForeign getitem: 1)	typesr?listr.r+rG
cell_contentsassertIsr7)	r,r[rafunction	class_refobjr?rHrPs	      @@@rtest_closure_injectionzCodeTest.test_closure_injections	'	3	w	W	4		40@A##((+99	

i&9oQ!56r(cd}|j}t|}||j|j|j|j
|j|j|j|j|j|j|j|j|j|j|j |j"|j$|j&y)NcyrBrCrCr(rfuncz'CodeTest.test_constructor.<locals>.funcr()rRtypeco_argcountco_posonlyargcountco_kwonlyargcount
co_nlocalsco_stacksizeco_flagsrLr$co_namesco_varnamesr8rco_qualnamer9co_linetableco_exceptiontablerKco_cellvars)r,rnr%CodeTypes    rtest_constructorzCodeTest.test_constructors
]]8	--,,





)),,#	(r(c|jtjjjtjj
yrB)r7r0
test_qualnamerRryr`r,s rrzCodeTest.test_qualnames4""++77""//	
r(cd}|j}d}|j}dddddd|jtjzfd	d
|jfd|j
fdd
ddddd|jffD]Q\}}|j||5|jdi||i}|jt|||dddS|j|j|j}|j|j|j|j|j|jy#1swYxYw)Nc
d}|SNrJrCxs rrnz#CodeTest.test_replace.<locals>.funcAHr(cd}d}|S)NrbrcrC)yzs  rfunc2z$CodeTest.test_replace.<locals>.func2sAAHr()rqr)rrr)rsr)rtrJ)rurrv)r9drLr$)rw)myname)rx)spam)rK)freevar)r|)cellvar)r8newfilename)rnewnamerz)r&value)rxrtrC)
rRrvinspectCO_COROUTINErLr$rzsubTestrMr7r"rxrt)r,rnrXrcode2r&rrPs        rtest_replacezCodeTest.test_replacesY	}}	
%$
)=)==>#


&
%//*%&))*"
U//0!
	AKD%$4u5
A'4<<84-8  4!8%@
A
A%	A,<<E,=,=+0+;+; =--u/@/@A,,e.>.>?
A
As1D::E	cd}|j}|jdkDsJt|}dD]}|jt5||j
|j|j|j|z|j|j|j|j|j|j|j|j|j |j"|j$|j&|j(|j*ddd|jt5|j-|jdz
ddd|jt5|j-|jdzdddy#1swYxxYw#1swYTxYw#1swYyxYw)Nc
d}|SrrCrs rrnz,CodeTest.test_nlocals_mismatch.<locals>.func"rr(r)rJrJ)rt)rRrtrpr:
ValueErrorrqrrrsrurvrLr$rwrxr8rryr9rzr{rKr|rM)r,rnr%r}diffs     rtest_nlocals_mismatchzCodeTest.test_nlocals_mismatch!sp	]]}}q  8	D"":.
..---**--%

	.

z
*	5JJ"--!"3J4	5


z
*	5JJ"--!"3J4	5	51

,	5	5	5	5s%CF6 F)3 F5F&	)F25F>cjd}|j}|jd}|j||y)NcfdS)NcSrBrCargsrrFzBCodeTest.test_shrinking_localsplus.<locals>.func.<locals>.<lambda>Js3r(rCrs`rrnz0CodeTest.test_shrinking_localsplus.<locals>.funcIs	r(rn)r)rRrMr7)r,rnrXnewcodes    rtest_shrinking_localsplusz"CodeTest.test_shrinking_localsplusFs0	}},,v,.w'r(cd}|jjdx}}|jt|j	gy)NcyrBrCrCr(rrnz+CodeTest.test_empty_linetable.<locals>.funcPr(r(rz)rRrMr7reco_lines)r,rnrPrXs    rtest_empty_linetablezCodeTest.test_empty_linetableOsA	--//S/AA4h//12B7r(cd}|jt5|jjdddy#1swYyxYw)NcyrBrCrCr(rrnz3CodeTest.test_co_lnotab_is_deprecated.<locals>.funcVrr()assertWarnsDeprecationWarningrR	co_lnotab)r,rns  rtest_co_lnotab_is_deprecatedz%CodeTest.test_co_lnotab_is_deprecatedUs:	

0
1	$MM##	$	$	$s	9Acd}|jtdd|jjd|jjddz|_d}|jt|5|dddy#1swYyxYw)NcyrBrCrCr(rfooz+CodeTest.test_invalid_bytecode.<locals>.foo]rr(z<229>rJrLzunknown opcode 229)r7r
rRrMrLassertRaisesRegexSystemError)r,rmsgs   rtest_invalid_bytecodezCodeTest.test_invalid_bytecode\s		
g.||++cll221266,8#

#
#K
5	E			s0BB
cddl}i}ttjd||d}|j}|j
j}g}t|j|d|jdD]E\}}|j|jdgdt|r5|j|G|j|D	cgc]}	|	j|	j fc}	gdycc}	w)	NrzX        try:
            1/0
        except Exception as e:
            exc = e
        excT)show_caches)strict)rrc))
PUSH_EXC_INFON)
LOAD_CONSTN)
STORE_NAMEe)DELETE_NAMErRERAISErJ)COPYrc)
POP_EXCEPTNr)disr<textwrapdedent
__traceback__tb_framef_codezipget_instructionsco_positionsassertIncountanyappendr7r
argval)
r,r	namespacer	tracebackrXartificial_instructionsinstr	positionsinstructions
          r)test_co_positions_artificial_instructionsz2CodeTest.test_co_positions_artificial_instructionsks	X__
	%%	!!(("$ # C  48!
	6E9
MM)//$/;y>'..u5	6 	
$;
##[%7%78
	
	

sC>cJtjd}tddd|y)N#
            def f():
                pass

            positions = f.__code__.co_positions()
            for line, end_line, column, end_column in positions:
                assert line == end_line
                assert column is None
                assert end_column is None
            z-Xno_debug_ranges-crrrr,rXs  r6test_endline_and_columntable_none_when_no_debug_rangesz?CodeTest.test_endline_and_columntable_none_when_no_debug_rangess(	 		0$=r(cJtjd}td|dy)Nrr1)PYTHONNODEBUGRANGESrrs  r:test_endline_and_columntable_none_when_no_debug_ranges_envzCCodeTest.test_endline_and_columntable_none_when_no_debug_ranges_envs#	 		t=r(cd}|jjd}|j}|D]7\}}}}|j||j	||j
dz9y)Ncd}yrrCrs rrnz8CodeTest.test_co_positions_empty_linetable.<locals>.funcsAr(r(rrJ)rRrMrassertIsNoner7r9)r,rnrPrlineend_linecolumn
end_columns        r!test_co_positions_empty_linetablez*CodeTest.test_co_positions_empty_linetableso	==((c(:))+	2;	D.D(FJd#Xx'>'>'BC	Dr(cfd}|j}|jd}|jd}|jd}|j|||j|||j|||j|||j|||j||y)Nc	ttty#tYxYw#twxYwrB)arObdrCr(rrWz&CodeTest.test_code_equality.<locals>.fs,

s
!
2/2>r(r)r{)rRrMassertNotEqual)r,rWcode_acode_bcode_ccode_ds      rtest_code_equalityzCodeTest.test_code_equalitys	S1#6#6FF+FF+FF+FF+FF+FF+r(c4dj}dj}|j|||jt|t||jd}|j|||jt|t|y)NcyrrCrCr(rrFz:CodeTest.test_code_hash_uses_firstlineno.<locals>.<lambda>ror(cyrrCrCr(rrFz:CodeTest.test_code_hash_uses_firstlineno.<locals>.<lambda>ror()r9)rRrhashrM)r,c1c2c3s    rtest_code_hash_uses_firstlinenoz(CodeTest.test_code_hash_uses_firstlinenosx
!
!
!
!B#DHd2h/
ZZrZ
*B#DHd2h/r(c`ddddj}|j|jd|j|jd|j|jd|jdd}|j
|||j
t|t|y)NrJ)rwcyrrC)rrrrs    rrFz4CodeTest.test_code_hash_uses_order.<locals>.<lambda>ror(rbr)rrrs)rRr7rqrrrsrMrr)r,rOswappeds   rtest_code_hash_uses_orderz"CodeTest.test_code_hash_uses_orders A
(22*--q1,,a0))qA)FAw'DGT']3r(cdj}dj}|j|j}|j|||jt	|t	|y)Nc||zSrBrCrrs  rrFz7CodeTest.test_code_hash_uses_bytecode.<locals>.<lambda>
!a%r(c||zSrBrCr
s  rrFz7CodeTest.test_code_hash_uses_bytecode.<locals>.<lambda>rr(r)rRrMrLrr)r,rOrrs    rtest_code_hash_uses_bytecodez%CodeTest.test_code_hash_uses_bytecodesT
))
))
YYqyyY
)Ar"DGT"X.r(N)r^r_r`rr=rkr~rrrrrrrrrrrrrrr
rrCr(rr0r0s77@(2
&@P#5J(8$
/
/
b
>> DD,*04/r(r0cB|tjd|zdzdduS)N_rJr)sysintern)ss r
isinternedrs%

C!GcM1R0111r(cneZdZdZdZdZedZedZedZ	edZ
edZy	)
CodeConstsTestcj|D]}||k(s	|cS|j|||jdy)NzShould never be reached)rfail)r,rrvs    r
find_constzCodeConstsTest.find_consts:	AEz		


eV$		+,r(cFt|s|jd|dyy)NString z is not internedrrr,rs  rassertIsInternedzCodeConstsTest.assertIsInterneds!}IIQ89r(cFt|r|jd|dyy)Nrz is internedrr s  rassertIsNotInternedz"CodeConstsTest.assertIsNotInternedsa=II45r(cxtddd}|j|jd}|j|y)Nzres = "str_value"?r<	str_valuecompilerr$r!r,r%rs   rtest_interned_stringz#CodeConstsTest.test_interned_string
s3
(#v
6OOBLL+6a r(c~tddd}|j|jd}|j|dy)Nzres = ("str_value",)r%r<r&rr'r)s   rtest_interned_string_in_tuplez,CodeConstsTest.test_interned_string_in_tuples7
+S&
9OOBLL.9ad#r(ctddd}|j|jtd}|j	t|dy)Nzres = a in {"str_value"}r%r<r,r)r(rr$	frozensetr!r#r)s   r!test_interned_string_in_frozensetz0CodeConstsTest.test_interned_string_in_frozensets@
/f
=OOBLL)N*CDeAhqk*r(c8dd}|j|y)Nc|SrBrC)rs rrWz6CodeConstsTest.test_interned_string_default.<locals>.fsHr(r,)r!r,rWs  rtest_interned_string_defaultz+CodeConstsTest.test_interned_string_defaults	ac"r(cxtddd}|j|jd}|j|y)Nzres = "str\0value!"r%r<z
strvalue!)r(rr$r#r)s   rtest_interned_string_with_nullz-CodeConstsTest.test_interned_string_with_null"s3
+S&
9OOBLL-8  #r(N)r^r_r`rr!r#rr*r-r0r4r6rCr(rrrsu-:6!!
$$
++
##
$$r(rceZdZdZy)CodeWeakRefTestc`i}tdt||d}~d_fd}tj|j
|}j
t|~tjt|j
jy)Nz
def f(): passrWFcd_y)NT)called)rXr,s rcallbackz,CodeWeakRefTest.test_basic.<locals>.callback4s
DKr()
r<rUr;weakrefrefrR
assertTrueboolrassertFalse)r,rrWr<coderefs`    r
test_basiczCodeWeakRefTest.test_basic+s	_gi3cN	++ajj(3WY(
gi)$r(N)r^r_r`rCrCr(rr8r8)s%r(r8ct|SrB)next)its rreadrGCs8Or(cvt|}|dz}d}|dzr!t|}|dz
}||dz|zz}|dzr!|S)N?r@)rG)rFrvalshifts    rread_varintrNFsTRA
b&C
E
b&H

"b&Jr(c8t|}|dzr|dz	S|dz	Sr)rN)rFuvals  rread_signed_varintrQPs(r?Dax|qyr(c#K|j}t|j}		t|}|dz	dz}|dzdz}|dk(r||ddddfn|dk(rYt|}||z
}|t
|z}t
|}|dk(rd}n|dz}t
|}|dk(rd}n|dz}||||||fn|dk(rt|}||z
}||||ddfne|dvr+|d	z
}||z
}t|}	t|}
|||||	|
fn6d|cxkrd	ksJJt|}|dz|d
z	z}	|||||	|	|dzzf#t$rYywxYww)Nrcr4rJr
)
rVr)r9iterrzrG
StopIterationrQrN)rXrrF
first_bytelength
line_deltarcolend_colrrsecond_bytes            rparse_location_tableraWsD	
d	 B
	bJa2%q.A%2:tT488
RZ+B/JJDk"o-Hb/Caxq!"oG!|1xg>>
RZ+B/JJDtT488
\
!JJD"XFbJtVZ@@NN#N#r(KQY+"23FtVV{R?O5PQQM		s(#ED6DE6	E?EEEc#jKt|D]!\}}}}}}t|D]
}||||f#ywrB)rarange)rXrr\rrr^r_s       rpositions_from_location_tablerdsI3G3M1/643v	1A300	11s13c#2K|D]}||k7s	||}ywrBrC)lstprevitems   rdedupris&4<JDs	c&td|DS)Nc3*K|]\}}}}|
ywrBrC).0lrs   r	<genexpr>z&lines_from_postions.<locals>.<genexpr>s1|1a1s)ri)rs rlines_from_postionsros1y111r(cPdz}ttztz}|rtStS)z






    r)rrrqp)rrs  r
misshappenrssK	
	
		
	

	
		

	r(c6dj}t)Nz
            )stripr)!example_report_generation_messages rbug93662rws
eg&,r(c4eZdZdZdZdZdZedZy)CodeLocationTestct|jj}tt|j}t	||D]\}}|j|||jt
|t
|yrB)rerRrrdrr7len)r,rnpos1pos2l1l2s      rcheck_positionsz CodeLocationTest.check_positionssnDMM..011$--@A$o	%FBR$	%TCI.r(c|jt|jt|jtyrB)rrarsrwrs rtest_positionszCodeLocationTest.test_positionss-12Z(X&r(c|j}|jDcgc]\}}}|
}}}|j|tt	|ttt
|}t||D]\}}|j|||jt|t|ycc}}wrB)	rRrr7rerirordrr{)	r,rnr%rrlines1lines2r~rs	         rcheck_lineszCodeLocationTest.check_liness
]])+7:1a$77eFm!45)*G*KLM&&)	%FBR$	%Vc&k28s
B<c|jt|jt|jtyrB)rrarsrwrs r
test_lineszCodeLocationTest.test_liness--.$"r(cd}d}|jjddttjddtjddtjddgtd	|d
zzdzdg|_|jt||jt|jjd
d
gzy)NcyrBrCrCr(rrWz/CodeLocationTest.test_code_new_empty.<locals>.frr(rUrJ*RESUMErLOAD_ASSERTION_ERROR
RAISE_VARARGSrcrb)rur9rLrz)rrNN)
rRrMrNrr	r:AssertionErrorr7rer)r,rW PY_CODE_LOCATION_INFO_NO_COLUMNSs   rtest_code_new_emptyz$CodeLocationTest.test_code_new_emptys
	+-(ZZ''IIh'II45qIIo.71<>	(

&	
.!,((*+
%&&	
r(N)	r^r_r`rrrrrrrCr(rryrys*/'
3#


r(ryT)cpythonc|ayrB)
LAST_FREED)ptrs rmyfreers
r(cXeZdZdZdZdZdZdZejdZ
y)CoExtractdS)Nz	lambda:42)evalrs rget_funczCoExtra.get_funcs$$r(c	|j}|jttdttjd|jttdttjdy)Nrr)rr:rSetExtra
FREE_INDEXctypesc_voidpGetExtrar3s  rtest_get_non_codezCoExtra.test_get_non_codesQ

Ak8R$nnS1
3k8R$nnS1
3r(c	(|j}|jtt|jt
dzt
jd|jt|jt
dzt
jddy)Nrr)
rr:rrrRrrrr7rr3s  rtest_bad_indexzCoExtra.test_bad_indexsh

Ak8QZZ(nfnnS.A
CXajj*S.$nnS1345
7r(c|j}t|jtt	j
d~|j
tdy)Nr)rrrRrrrr7rr3s  rtest_free_calledzCoExtra.test_free_called%s;

AQZZV^^C-@AZ-r(c|j}tj}t|jt
tjdt|jt
tjd|j
tdtj}t|jt
||j
|jd~y)Ni,)
rrrrrRrr7rrr)r,rWextras   rtest_get_setzCoExtra.test_get_set.s

ANN$EQZZV^^C-@AQZZV^^C-@AZ-NN$EQZZU3U[[#.r(c2|j}Gddtj}t|jt
t
jd|||}~|j|j|jtdy)Nc$eZdZfdZdZxZS)6CoExtra.test_free_different_thread.<locals>.ThreadTestc>t|||_||_yrB)r*__init__rWtest)r,rWrrEs   rrz?CoExtra.test_free_different_thread.<locals>.ThreadTest.__init__DsG$&DF $DIr(cH|`|jjtdy)N)rWrr7rrs rrunz:CoExtra.test_free_different_thread.<locals>.ThreadTest.runHsII))*c:r()r^r_r`rr
__classcell__rDs@r
ThreadTestrCs
%;r(rr)r	threadingThreadrrRrrrstartjoinr7r)r,rWrtts    rtest_free_different_threadz"CoExtra.test_free_different_thread>sm

A
;Y--
;
QZZV^^C-@AAt$BHHJGGIZ-r(N)r^r_r`rrrrrrrequires_working_threadingrrCr(rrrs;	%	3	7	.	 
5		4	4	6	.
7	.r(rcL|jtj|SrB)addTestdoctestDocTestSuite)loadertestspatterns   r
load_testsrTs	MM'&&()Lr(__main__)C__doc__rrrrunittestrr=rrImportErrortest.supportrrrrtest.support.script_helperrropcoder	r
rrr'r.TestCaser0rrr8rGrNrQrardobjectrirorsrwry	pythonapipy	CFUNCTYPErfreefunc%PyUnstable_Eval_RequestCodeExtraIndexRequestCodeExtraIndexargtypes	c_ssize_trestypePyUnstable_Code_SetExtrar	py_objectc_intPyUnstable_Code_GetExtrarPOINTERrr	FREE_FUNCrrrr^mainrCr(r<module>rs#}~

&&8) '(28G/x  G/T
2-$X&&-$`%h''%4)RV1
H2@;
x((;
|T"v'9			BvV^^4HDD&.["$*$4$4!**H))6+;+;V^^LH||H**H))6+;+;'79H||HJ I&y1JB.(##B.J
zHMMO]
FsH		HH