o
    NZhV                     @   sl  d dl Z d dlmZ d dlZd.ddZG dd deZG dd	 d	eZG d
d deZdd Z	dd Z
G dd deZG dd deZdd ZG dd deZG dd deZdd ZG dd deZdd Zd d! Zd"d# Zd$d% ad&d' Zd(d) Zd*d+ Zed,kre # ed- e	  e  e  e  e  e  e  W d   dS 1 sw   Y  dS dS )/    N)partialFc                 C   sb   |r)z	t j| ||dW S  ty   Y nw td t j| ||d}td |S t j| ||dS )Nbyrefrecursez7Copy of %s with byref=True should have given a warning!ignoreerror)dillcopy	ExceptionAssertionErrorwarningssimplefilter)objr   r   val r   P/var/www/html/lang_env/lib/python3.10/site-packages/dill/tests/test_recursive.pyr	      s   

r	   c                          e Zd Z fddZ  ZS )obj1c                       t t|   d S N)superr   __init__self	__class__r   r   r         zobj1.__init____name__
__module____qualname__r   __classcell__r   r   r   r   r          r   c                       r   )obj2c                    r   r   )r   r#   r   r   r   r   r   r   #   r   zobj2.__init__r   r   r   r   r   r#   "   r"   r#   c                   @   s   e Zd ZeZdd ZdS )obj3c                 C   s   t t |   d S r   )r$   super_r   r   r   r   r   r   (   s   zobj3.__init__N)r   r   r    r   r%   r   r   r   r   r   r$   &   s    r$   c                   C   s   t t dds	J t t dddsJ t t ddsJ t t s#J t t dds,J t t ddds6J t t dds?J t t sFJ t t ddsOJ t t dddsYJ t t ddsbJ t t siJ d S NT)r   r   r   )r	   r   r#   r$   r   r   r   r   
test_super,   s   r(   c                 C      d S r   r   )modelr   r   r   get_trigger=      r+   c                   @   s   e Zd Zdd ZdS )Machinec                 C   s(   t  | _tt| | _tt| j| j_d S r   )Modelchildr   r+   triggerr   r   r   r   r   A   s   zMachine.__init__N)r   r   r    r   r   r   r   r   r-   @   s    r-   c                   @   s   e Zd ZdS )r.   N)r   r   r    r   r   r   r   r.   F   s    r.   c                   C   J   t t dds	J t t dddsJ t t ddsJ t t s#J d S r&   )r	   r-   r   r   r   r   test_partialK      r2   c                   @   s   e Zd Zdd Zdd ZdS )Machine2c                 C   s   t | j| | _d S r   )r   membergor   r   r   r   r   S   r   zMachine2.__init__c                 C   r)   r   r   )r   r*   r   r   r   r5   U   r,   zMachine2.memberN)r   r   r    r   r5   r   r   r   r   r4   R   s    r4   c                       r   )
SubMachinec                    r   r   )r   r7   r   r   r   r   r   r   Z   r   zSubMachine.__init__r   r   r   r   r   r7   Y   r"   r7   c                   C   r1   r&   )r	   r7   r   r   r   r   test_partials^   r3   r8   c                       r   )obj4c                    s4   t t|   |  G  fdddt | _d S )Nc                       s    e Zd Z fddZ  ZS )zobj4.__init__.<locals>.obj5c                    s   t |   | _d S r   )r   r   ar   )r   r:   obj5r   r   r   j   s   
z$obj4.__init__.<locals>.obj5.__init__r   r   r:   r;   r   r   r;   i   s    r;   )r   r9   r   objectbr   r   r<   r   r   f   s   zobj4.__init__r   r   r   r   r   r9   e   r"   r9   c                  C   sd   t t sJ ttt } t| t| jjd ju sJ t| j	t| j	jjd ju s0J d S )Nr   )
r	   r9   r   loadsdumpstyper   __closure__cell_contentsr>   )Z	obj4_copyr   r   r   test_circular_referencep   s   &rD   c                      s    fdd  S )Nc                          S r   r   r   gr   r   rG   x   r,   zf.<locals>.gr   r   r   rF   r   fw   s   rH   c                   C   s   t t sJ d S r   )r	   rH   r   r   r   r   test_function_cells}   r   rI   c                 C   s0   | dksJ | dkr| S t | d t | d  S )Nr         )fib)nr   r   r   rL      s   rL   c               	   C   sd   t tdd} t t}t}b| ddksJ ||fD ]}z	|d W td ty-   Y qw |ad S )NTr'      z&Function fib shouldn't have been found)r	   rL   r
   r   )Zfib2Zfib3Zfib4Z_fibr   r   r   test_recursive_function   s   
rO   c                     s   i   fdd} |  d< | S )Nc                      rE   r   r   r   dr   r   rG      r,   z(collection_function_recursion.<locals>.grG   r   rF   r   rP   r   collection_function_recursion   s   rR   c                  C   s    t t } |  d | u sJ d S )NrG   )r	   rR   rF   r   r   r   "test_collection_function_recursion   s   
rS   __main__r   )FF)r   	functoolsr   r   r	   r=   r   r#   r$   r(   r+   r-   r.   r2   r4   r7   r8   r9   rD   rH   rI   rL   rO   rR   rS   r   catch_warningsr   r   r   r   r   <module>   sF   


"