
    bi                         d dl Z de j                  d<   d ZddZ ed d      d        Z eg d	      Zdd
Z ed dd       d        Z e       Z	d Z
e
d        Zd Zedk(  r e        yy)    NTrecursec                 .      fd}fd}fd}||fS )Nc                       S N xs   Q/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/dill/tests/test_mixins.pyzzzzwtf.<locals>.zzz       H    c                       S r   r   )ys   r
   yyyzwtf.<locals>.yyy   r   r   c                       S r   r   )zs   r
   xxxzwtf.<locals>.xxx   r   r   r   )r	   r   r   r   r   r   s   ```   r
   wtfr      s    	S.r   c                 2     dgfd fd}|S )NFc                       d     d<   y )Nr   r   )inverteds   r
   invertzquad.<locals>.invert   s    qk/HQKr   c                 F      fd} |_         |_        |_        |S )Nc                  F     | i |}d   r| }|dz  z  |z  z   z   S )Nr      r   )argskwdsr	   abcfr   s      r
   funczquad.<locals>.dec.<locals>.func   s:    
T
T
a	!1"aq!tVac\Ar   )__wrapped__r   r   )r!   r"   r   r   r    r   r   s   ` r
   deczquad.<locals>.dec   s*      DDKDMKr   r   )r   r   r    r$   r   r   s   ``` @@r
   quadr%      s     W("  
*r   r   )r   r   c                      t        |       S r   )sum)r   s    r
   
double_addr(   '   s    	Tr   )   r      c                       fd}|S )Nc                       fd}|S )Nc                  6     | i |}|dz  z  |z  z   z   S Nr   r   )r   r   fxr   r   r    r!   s      r
   r"   z'quad_factory.<locals>.dec.<locals>.func2   s+    d?T?br1uWqt^ar   r   )r!   r"   r   r   r    s   ` r
   r$   zquad_factory.<locals>.dec1   s      Kr   r   )r   r   r    r$   s   ``` r
   quad_factoryr0   0   s    
 
*r      )r   r   r    c                     | dz   S )Nr)   r   r   s    r
   quadishr3   9       	
1*r   c                       fd}|S )Nc                       | i |}d|z  S r.   r   )r   r   r/   r!   s      r
   innerzdoubler.<locals>.innerB   s    	
D	D	BR4Kr   r   )r!   r7   s   ` r
   doublerr8   A   s     
,r   c                     d| z  S r.   r   r   s    r
   	quadrupler:   H   r4   r   c                     t        ddd      dt        z  k(  sJ t         j                          t        ddd      dt        z  k(  sJ t        j                  t               }  | ddd      dt        z  k(  sJ | j                  ddd      t        k(  sJ t         j                  d   st         j                          t        j                  }t        j                  }|j                  |j                  t              d         dk(  sJ |j                  |j                  t              d         dk(  sJ |j                  t        d	
      dt        z  k(  sJ |j                  t        d	
      dt        z  k(  sJ |j                  t        d	
      dt        z  k(  sJ |j                  t         d	
      dt        z  k(  sJ |j                  t        d
      dk(  sJ |j                  t        d
      }|j!                  dd      \  }}}}}|dk(  sJ t#        |||g      t#        g d      k(  sJ |j                  t        d
      }|j!                  dd      \  }}}}|dk(  sJ t#        |||g      t#        g d      k(  sJ |j                  t         d
      }|j!                  dd      \  }}}}}}|dk(  sJ t#        ||||g      t#        g d      k(  sJ y )Nr)   r   r*   r   r!   z8@quad_factory(a=0,b=4,c=0)
def quadish(x):
  return x+1
z(@doubler
def quadruple(x):
  return 2*x
F)sourcezfrom %s import quadish
zfrom %s import quadruple
zfrom %s import quadratic
zfrom %s import double_add
Tzdef doubler(f):
  def inner(*args, **kwds):
    fx = f(*args, **kwds)
    return 2*fx
  return inner

@doubler
def quadruple(x):
  return 2*x

r1   zdef quad_factory(a=1,b=1,c=0):
  def dec(f):
    def func(*args,**kwds):
      fx = f(*args,**kwds)
      return a*fx**2 + b*fx + c
    return func
  return dec

@quad_factory(a=0,b=4,c=0)
def quadish(x):
  return x+1
)a = 0c = 0zb = 4zl
def dec(f):
  def func(*args,**kwds):
    fx = f(*args,**kwds)
    return a*fx**2 + b*fx + c
  return func
)za = 1r@   zb = 1   a  def quad(a=1, b=1, c=0):
  inverted = [False]
  def invert():
    inverted[0] = not inverted[0]
  def dec(f):
    def func(*args, **kwds):
      x = f(*args, **kwds)
      if inverted[0]: x = -x
      return a*x**2 + b*x + c
    func.__wrapped__ = f
    func.invert = invert
    func.inverted = inverted
    return func
  return dec

@quad(a=0,b=2)
def double_add(*args):
  return sum(args)
)r?   r@   zb = 2zinverted = [True])r(   r/   r   dillcopyr#   r   r=   detect	getsourcefreevarsr3   r:   
importable__name__	quadraticsplitset)	_ddsddresultr   r   r    _ds	            r
   test_mixinsrR   M   s   	Aa	ad	""	"	Aa	be	##	#yy"	Aabe		 
!A	"	$$	$ 
		Q	 {{"{{"	bkk'*3/	04q	qq	q	bkk),S1	26c	cc	c	wu	-1Kh1V	VV	V	y	/3ORZ3Z	ZZ	Z	y	/3ORZ3Z	ZZ	Z	z%	04QT\4\	\\	\	y	.  3L  
L  L  
L===.&<<Q'.!Aa&	  {  
{  {  
{	a!W89	99	9==4=0&d1%,!Aa	  H  
H  H  
H	a!W89	99	9==D=1&\\$q)!Aa!F	  o  
o  o  
o	a!AY3OP	PP	Pr   __main__)r)   r)   r   )rB   settingsr   r%   r(   r'   r/   r0   r3   rI   r8   r:   rR   rH   r   r   r
   <module>rU      s    i   A  	\ A  N	 	 	'QV zM r   