Sindbad~EG File Manager
�
'Μg�f � �. � d Z ddlZddlZddlZddlZddlZddlZddlZddlZ ddl Z ddlmZm
Z
mZmZ ddlmZ ddlmZ ddlmZmZ ed Zd� Zd � Zd
� Z G d� dej4 � Zd
� Z G d� dej4 � Z G d� dej4 � Zd� Zd� Z d� Z!d� Z"d� Z# e$� fd�Z%d� Z&d� Z'd� Z( G d� dej4 � Z) e
d�� �re ��e jT Z+ e jX de jZ � Z.e+j^ Z0e.fe0_1 e jd e0_3 e+jh Z5e jl e jd e jZ fe5_1 e jn e5_3 e+jp Z9e jl e jd e jt e jZ � fe9_1 e jn e9_3 da;d� Z< e.e<� Z= e0e=� Z> G d � d!ej4 � Z?d"� Z@eAd#k( r ej� � yy# e
$ r dZ Y ���w xY w)$a� This 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_only�check_impl_detail�requires_debug_ranges�
gc_collect)�assert_python_ok)�threading_helper)�opmap�opname�COPY_FREE_VARSc # �~ K � | D ]4 }t |� }|j d� rd|j z �� �1|�� �6 y�w)z.Yield a doctest-safe sequence of object reprs.z<code objectz<code object %s>N)�repr�
startswith�co_name)�t�elt�rs �+/usr/local/lib/python3.12/test/test_code.py�constsr � s9 � �� �����I���<�<��'�$�s�{�{�2�2��G� �s �;=c
� � dD ] }t |�dt | d|z � ��� �! t dt t | j � � � y)z1Print out a text representation of a code object.)
�name�argcount�posonlyargcount�kwonlyargcount�names�varnames�cellvars�freevars�nlocals�flagsz: �co_zconsts:N)�print�getattr�tupler � co_consts)�co�attrs r �dumpr'