
    "h                     d   d dl mZmZmZmZ d dl mZ d dlmZ d dlZdZ	d Z
d Zd Z G d	 d
e      Z e       Zd Zd Z G d d      Z e       Zd Zd Zd Zd Zd Zd Zd Zd Zd Zedk(  r@ e         e         e         e         e         e         e         e         e        yy)    )	getsourcegetname_wraplikely_import)getimportable)IS_PYPYNi 
c                     | dz  S N    xs    S/var/www/html/sandstorm/venv/lib/python3.12/site-packages/dill/tests/test_source.py<lambda>r      s
    ad     c                     t        |       | z
  S N)fr   s    r   gr      s    1/r   c                     d } ||       | z
  S )Nc                     | S r   r   r   s    r   r   zh.<locals>.g   s    1Hr   r   )r   r   s     r   hr      s    	
1/r   c                       e Zd Zd Zy)Fooc                     ||z  |z   S r   r   )selfr   s     r   barzFoo.bar   s    Q3q5Lr   N)__name__
__module____qualname__r   r   r   r   r   r      s    r   r   c                     | |z   S r   r   )r   ys     r   addr#      s    	
1*r   c                     | dz  S r
   r   r   s    r   r   r       s
    1a4 r   c                       e Zd Zy)BarN)r   r   r    r   r   r   r&   r&   "   s    r   r&   c                  0   t        t              dk(  sJ t        t              dk(  sJ t        t              dk(  sJ t	        t              dk(  sJ t	        t              dk(  sJ t	        t              dk(  sJ  t        t              d      dk(  sJ  t        t              d      d	k(  sJ  t        t              d      d
k(  sJ t	        t              dk(  sJ t	        t              dk(  sJ t        t              dk(  sJ t        t              dk(  sJ y )Nzf = lambda x: x**2
zdef g(x): return f(x) - x
z1def h(x):
  def g(x): return x
  return g(x) - x
r   r   r            r   r   r&   class Bar:
  pass
8class Foo(object):
  def bar(self, x):
    return x*x+x
)r   r   r   r   r   r   r   r&   r   r   r   test_getsourcer-   '   s   	1/	//	/	16	66	6	1O	OO	O	s			s			s			q!			q!			q!									31	11	1	3X	XX	Xr   c                  ,    t        t               dk(  sJ y )Nz&from dill.source import likely_import
)r   r   r   r   test_itselfr/   9   s    	}	%'P	PP	Pr   c                  $   t        t              dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        t        d      dk(  sJ t        dd      dk(  sJ t        dd      dk(  sJ t        d       dk(  sJ t        d d      dk(  sJ y )	Nzpow
d   100
TzTrue
explicitzfrom builtins import pow
None
)r   powr   r   r   test_builtinr7   =   s    	s	w	&&	&	s	w	&&	&	t		((	(	sT	*.J	JJ	J	sT	*g	55	5	td	+x	77	7	t		((	(	td	+x	77	7r   c                  0    ddl m}  t        |       dk(  sJ y )Nr   sinzfrom math import sin
)mathr:   r   r9   s    r   test_importedr<   J   s    	s	7	77	7r   c                  p    t        t              dt        z  k(  sJ t        t              dt        z  k(  sJ y )Nfrom %s import add
from %s import squared
)r   r#   r   squaredr   r   r   test_dynamicrA   O   s4    	s	5@	@@	@	w	#=#H	HH	Hr   c                     ddl m}  d}t        st        j                  t
        k\  r|nd} |        }t        |       |k(  sJ t        |      |k(  sJ t        t              dt        z  k(  sJ t        t              dt        z  k(  sJ y )Nr   )BytesIOzfrom _io import BytesIO
zfrom io import BytesIO
from %s import Foo
)
iorC   r   sys
hexversionPY310br   r   r   _foo)StringIOr"   r   ss       r   test_classesrL   U   s~    $!!s~~/a6P!j!	x	 A	%%	%	q	Q			s	5@	@@	@	t	 6 A	AA	Ar   c                     t        t              dt        z  k(  sJ t        t              dt        z  k(  sJ t        t              dt        z  k(  sJ t        t        j
                        dt        z  k(  sJ t        t        j
                        dt        z  k(  sJ t        d       dk(  sJ t        d      dk(  sJ t        t        d	      d
k(  sJ t        t        d	      dk(  sJ t        d d	      dk(  sJ t        t        d	      dk(  sJ t        t        d	      dk(  sJ t        t        j
                  d	      dk(  sJ t        t        j
                  d	      dt        z  k(  sJ t        t        j
                  dd      dt        z  k(  sJ t        t        dd      dt        z  k(  sJ t        t        dd      dt        z  k(  sJ t        t        dd      dk(  sJ t        t        dd      dk(  sJ t        d dd      dk(  sJ t        ddd      dk(  sJ t        t        d      dt        z  k(  sJ t        t        d      dt        z  k(  sJ t        t        d      dt        z  k(  sJ t        t        j
                  d      dt        z  k(  sJ t        t        j
                  d      dt        z  k(  sJ t        d d      dk(  sJ t        dd      dk(  sJ y )Nr>   r?   rD   zfrom %s import bar
r5   r1   r2   Fbynamezdef add(x,y):
  return x+y
zsquared = lambda x:x**2
r+   r,   z!def bar(self, x):
  return x*x+x
Tmemo)aliasrO   zfrom %s import bar as memo
zfrom %s import Foo as memo
zfrom %s import squared as memo
zmemo = squared = lambda x:x**2
z'def add(x,y):
  return x+y

memo = add
zmemo = None
zmemo = 100
r3   )r   r#   r   r@   r   r   rI   r&   r   r   r   test_importablerR   c   s   	s	5@	@@	@	w	#=#H	HH	H	s	5@	@@	@	sww	#9H#D	DD	D	txx	 $:X$E	EE	E	t		((	(	s	w	&&	&	s5	)-L	LL	L	wu	-1L	LL	L	tE	*h	66	6	s5	)-C	CC	C	s5	)-j	jj	j	swwu	-1V	VV	V	swwt	,0F0Q	QQ	Q	swwfT	:>\_g>g	gg	g	s&	6:X[c:c	cc	c	wfT	:>`ck>k	kk	k	wfU	;?a	aa	a	s&	7;h	hh	h	t6%	8O	KK	K	s&	7>	II	I	sT	*.Dx.O	OO	O	w	.2Lx2W	WW	W	sT	*.Dx.O	OO	O	sww	.2H82S	SS	S	txx$	/3IH3T	TT	T	td	+x	77	7	sT	*g	55	5r   c                      	 ddl m}   | g d      }t        |      dk(  sJ t        |       d| j                  z  k(  sJ t        |d      dk(  sJ t        | d      d| j                  z  k(  sJ y # t        $ r Y y w xY w)Nr   )array)   r      z)from numpy import array
array([1, 2, 3])
zfrom %s import array
FrN   )numpyrT   r   r   ImportError)rT   r   s     r   
test_numpyrY      s    gALLLL#;e>N>N#NNNN5)-ZZZZu-1IEL\L\1\\\\	ds   A.A1 1	A=<A=c                  H    t        t        d      j                  d      sJ y )NFrN   zOimport dill
class Foo(object):
  def bar(self, x):
    return x*x+x
dill.loads()r   rI   
startswithr   r   r   test_foor\      s*    	tE	*	5	5  7L  
M  M  
Mr   __main__)dill.sourcer   r   r   r   r   
dill._dillr   rF   rH   r   r   r   objectr   rI   r#   r@   r&   _barr-   r/   r7   r<   rA   rL   rR   rY   r\   r   r   r   r   <module>rb      s    A @ %  
	 &  u  
uY$Q	88
I
B6@M zMNONNLJ r   